Можно ли использовать колонку в SELECT, если мы по ней не группируем в GROUP BY?

В SQL, если используется GROUP BY, то в списке SELECT можно указывать:

Короткий ответ

Что ответить на собеседовании

В SQL, если используется GROUP BY, то в списке SELECT можно указывать:

Подробный разбор

Ответ с пояснениями

В SQL, если используется GROUP BY, то в списке SELECT можно указывать:

  • Колонки, по которым происходит группировка (в GROUP BY), или
  • Агрегатные функции (например, SUM(), COUNT(), MAX() и т.д.)

Если в SELECT указать колонку, которая не входит в GROUP BY и не обёрнута в агрегатную функцию, то большинство СУБД выдадут ошибку, так как неясно, какое значение этой колонки нужно выбрать из группы.

Исключения могут быть в некоторых СУБД с расширениями (например, MySQL в режиме по умолчанию), где возвращается произвольное значение из группы, но это не рекомендуется и может привести к некорректным результатам.

Поэтому ответ: Нет, нельзя использовать колонку в SELECT без группировки по ней или агрегатной функции.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее