Что вернёт запрос SELECT AVG(salary) FROM employees;?
AОдну строку на каждого сотрудника с его зарплатой.
BОдну строку с одной колонкой — среднее значение
salary по всей таблице.CОдну строку на каждый отдел компании.
DЗапрос вернет ошибку, так как нет
GROUP BY.Правильный ответ. Агрегат без
GROUP BY возвращает одну строку по всей выборке.Разбор
Если в запросе используется агрегатная функция, например AVG(salary), и нет GROUP BY, то результатом будет одна строка с агрегированным значением по всем выбранным строкам. В примере это средняя зарплата по всем сотрудникам в таблице employees.
Проверь себя · 1/3разбор после ответа
Есть таблица
orders(user_id, amount). Какой запрос посчитает сумму всех заказов по каждому пользователю?Ещё вопросы по теме «Агрегация, GROUP BY и HAVING»
- Что делает оператор `DISTINCT`?
- Что делает `HAVING`?
- Есть таблица `orders(user_id, amount)`. Какой запрос посчитает сумму всех заказов по каждому пользователю?
- Нужно посчитать сумму оплаченных заказов по каждому пользователю. В таблице `orders` есть поля `user_id`, `amount`, `status`. Какой запрос корректен и наиболее эффективен?
- В таблице `users` есть колонка `middle_name`, в которой часто хранится `NULL`. Что вернёт выражение `COUNT(middle_name)`?
- Все вопросы по «Агрегация, GROUP BY и HAVING» →