Что вернёт запрос SELECT AVG(salary) FROM employees;?

AОдна строка с одной колонкой: среднее salary по всей таблице employees
BПо одной строке на каждого сотрудника со значением поля salary без агрегации
CПо одной строке на каждый отдел со средней зарплатой внутри этого отдела
DОшибка выполнения: агрегат AVG без GROUP BY в SQL не разрешён
Правильный ответ. Агрегат без GROUP BY возвращает одну строку по всей выборке.

Разбор

Если в запросе используется агрегатная функция, например AVG(salary), и нет GROUP BY, то результатом будет одна строка с агрегированным значением по всем выбранным строкам. В примере это средняя зарплата по всем сотрудникам в таблице employees. Возврат строки на сотрудника требовал бы отказа от агрегата; группировка по отделам — добавления GROUP BY department; ошибки тут не будет, потому что без GROUP BY агрегат корректен.

Проверь себя · 1/3разбор после ответа
Что вернёт запрос SELECT AVG(salary) FROM employees;?
Тренировать SQL в Telegram

Ещё вопросы по теме «Агрегация, GROUP BY и HAVING»