В этом разделе будут рассмотрены различия между группированием с использованием предложения group by и группированием с применением group by в комбинации с оператором cube. Основное отличие заключается в том, что предложение group by определяет один или более столбцов в качестве группы, где все строки в любой группе имеют те же значения для тех же столбцов, cube и rollup предоставляют дополнительные итоговые строки для группируемых данных. Эти итоговые строки также называются многомерными итогами.
Следующие два примера демонстрируют эти отличия. В примере 24.8 применяется предложение group by для группирования строк таблицы projectdept на основе двух критериев: столбцов deptname и empcnt.
Основным отличием между двумя последними примерами является то, что результирующий набор примера 24.8 отображает только значения, относящиеся к группам, тогда как результирующий набор примера 24.9 содержит дополнительно все возможные итоги строк. Заполнитель значений в ненужных столбцах суммируемых строк отображается в виде null. Например, следующая строка в результирующем наборе null null 305000 дает сумму всех бюджетов всех существующих проектов в этой таблице, тогда как строка null 5 125000 показывает сумму всех бюджетов всех проектов, над которыми работает в точности пять служащих.
Синтаксис cube в примере 24.9 соответствует стандартизованному синтаксису этого оператора. Этот синтаксис введен в SQL Server 2008. Пример 24.10 эквивалентен примеру 24.9, однако он использует синтаксис старого стиля.