Что вернёт запрос SELECT region, category, COUNT(*) FROM sales GROUP BY ROLLUP(region, category)?

AСтроки по каждой паре, подытоги по каждому региону с NULL в category и общий итог с NULL в обоих столбцах
BТолько строки по каждой уникальной паре region и category — итоги не добавляются
CСтроки по каждой категории с NULL в region и общий итог без разбивки по регионам
DДекартово произведение всех регионов и категорий со значениями для каждой ячейки
Правильный ответ. ROLLUP(a, b) генерирует три уровня группировки: (a, b), (a) и (). Строки с итогами помечаются NULL в соответствующих столбцах.

Разбор

GROUP BY ROLLUP(a, b) генерирует группировки: (a, b), (a), (). Для таблицы продаж: подсчёт по каждой паре регион-категория, подытог по каждому региону с NULL вместо category, и общий итог с NULL в обоих столбцах. Функция GROUPING(col) позволяет отличить синтетический NULL от реального NULL в данных.

Проверь себя · 1/3разбор после ответа
В таблице users есть колонка middle_name, в которой часто хранится NULL. Что вернёт выражение COUNT(middle_name)?
Тренировать SQL в Telegram

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