В столбце amount значения 10, 20, NULL, 30, NULL. Чему равны SUM(amount) и AVG(amount)?
AОбе функции
SUM и AVG вернут NULL, если в столбце amount встретится хотя бы одно значение NULL.BФункция
SUM пропустит NULL и вернёт сумму непустых строк, а AVG разделит её на число непустых значений amount.CОбе функции
SUM и AVG заменят NULL на 0 в столбце amount и автоматически включат такие строки в расчёт.DФункция
SUM пропустит NULL и вернёт сумму непустых строк, а AVG разделит её на общее число строк, включая NULL.Правильный ответ. Обе функции игнорируют
NULL: SUM вернёт 60, а AVG разделит 60 на 3 и вернёт 20.Разбор
По стандарту SQL агрегатные функции SUM, AVG, MIN, MAX пропускают NULL. SUM вернёт 10+20+30=60. AVG разделит 60 на 3 (не на 5) и вернёт 20. Если нужно учитывать NULL как ноль, используют AVG(COALESCE(amount, 0)) — тогда знаменатель будет 5, а результат 12.
Проверь себя · 1/3разбор после ответа
В таблице пользователей есть колонка
middle_name, в которой часто хранится NULL. Что вернёт выражение COUNT(middle_name)?Ещё вопросы по теме «Агрегация, GROUP BY и HAVING»
- Что делает оператор `DISTINCT` в `SELECT`-запросе?
- Что делает оператор `HAVING` в SQL-запросе с группировкой?
- Есть таблица `orders(user_id, amount)`. Какой запрос посчитает сумму всех заказов по каждому пользователю?
- Нужно посчитать сумму оплаченных заказов по каждому пользователю. В таблице `orders` есть поля `user_id`, `amount`, `status`. Какой запрос корректен и наиболее эффективен?
- В таблице пользователей есть колонка `middle_name`, в которой часто хранится `NULL`. Что вернёт выражение `COUNT(middle_name)`?
- Все вопросы по «Агрегация, GROUP BY и HAVING» →