Задать вопрос
@rinaz22

Как группировать данные, если у них есть уникальные id?

В БД есть записи с уникальными id. Хочу группировать их по столбцу off_id(они могут быть одинаковые), но выходит ошибка:
Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'db.off_stat.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
Насколько я понял это из-за того, что у каждой записи есть свой уникальный id.
Как это можно исправить?
  • Вопрос задан
  • 259 просмотров
Подписаться 1 Простой 1 комментарий
Решение пользователя Akina К ответам на вопрос (3)
@Akina
Сетевой и системный админ, SQL-программист.
Вы пытаетесь сделать откровенную глупость, выводя значение id в итоговом наборе.

Вот есть некая группа, в ней все off_id одинаковы, но id различны. После группировки все эти записи будут сгруппированы в одну. А теперь, внимание, вопрос: ну и какое одно значение id из всех возможных сервер должен вернуть? не знаете? так ведь и сервер не знает... вот он и генерирует ошибку.

Уберите id из выходного набора. Либо явно и чётко скажите серверу, какое именно значение из всех возможных в группе он должен вернуть. Наименьшее? требуйте MIN(id). Наибольшее? MAX(id). Хоть какое, любое? ANY_VALUE(id).
Ответ написан
Комментировать