Как GROUP BY обрабатывает значения NULL в столбце группировки?
AЗначения
NULL игнорируются и не попадают ни в одну из групп результатаBКаждое значение
NULL образует свою отдельную группу, как уникальное значениеCВсе строки со значением
NULL попадают в одну общую группу, как равныеDЗапрос завершится ошибкой, если в столбце группировки встречаются значения
NULLПравильный ответ. Все строки с
NULL в столбце группировки попадают в одну общую группу.Разбор
При выполнении GROUP BY значения NULL считаются равными друг другу. Поэтому все строки, где значение колонки равно NULL, объединяются в одну группу, точно так же, как одинаковые ненулевые значения. Это важная особенность: в обычных сравнениях NULL = NULL даёт UNKNOWN, но GROUP BY ведёт себя иначе.
Проверь себя · 1/3разбор после ответа
Есть таблица
payments(amount), в части строк amount равно NULL. Какой запрос посчитает количество всех строк в таблице, включая строки с NULL в столбце amount?Ещё вопросы по теме «Агрегация, 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» →