Комментарии 1
Интересно, это приблизительно какой древности текст? Уже достаточно давно большинство серверов при наличии в выражении группировки первичного ключа таблицы совершенно не настаивают на включении в выражение остальных полей этой же таблицы без их агрегирования.
А следующие утверждения:
предложение SELECT должно содержать все имена столбцов и агрегатов, которые вы хотите отображать в выходных данных;
предложение GROUP BY должно содержать те же имена столбцов, которые есть и в предложении SELECT.
так и вовсе... ну скажем так - изрядно неточны.
Опять же не знаю, это косяк автора или переводчика, но ROLLUP/CUBE/GROUPING SETS - это ни разу не функции, а модификаторы. Вот GROUPING() - это функция. Которую кстати, следовало бы описать...
Ну и странно, что рассмотрена только одна из двух форм CASE.
Книга «SQL. Pocket guide, 4-е изд.»