Оператор CUBE

Оценить
(0 голоса)

В этом разделе будут рассмотрены различия между группированием с использованием предложения group by и группированием с применением group by в комбинации с оператором cube. Основное отличие заключается в том, что предложение group by определяет один или более столбцов в качестве группы, где все строки в любой группе имеют те же значения для тех же столбцов, cube и rollup предоставляют дополнительные итоговые строки для группируемых данных. Эти итоговые строки также называются многомерными итогами.

Следующие два примера демонстрируют эти отличия. В примере 24.8 применяется предложение group by для группирования строк таблицы projectdept на основе двух критериев: столбцов deptname и empcnt.

Оператор CUBE

Оператор CUBE

 

Основным отличием между двумя последними примерами является то, что результирующий набор примера 24.8 отображает только значения, относящиеся к группам, тогда как результирующий набор примера 24.9 содержит дополнительно все возможные итоги строк. Заполнитель значений в ненужных столбцах суммируемых строк отображается в виде null. Например, следующая строка в результирующем наборе null null 305000 дает сумму всех бюджетов всех существующих проектов в этой таблице, тогда как строка null 5 125000 показывает сумму всех бюджетов всех проектов, над которыми работает в точности пять служащих.

Синтаксис cube в примере 24.9 соответствует стандартизованному синтаксису этого оператора. Этот синтаксис введен в SQL Server 2008. Пример 24.10 эквивалентен примеру 24.9, однако он использует синтаксис старого стиля.

 

Оператор CUBE

 


Оператор ROLLUP
Функция GROUPING
Оператор GROUPING SETS
Функции запросов OLAP
Функции упорядочения

Добавить комментарий


Защитный код
Обновить

© 2020 www.serversql.ru. Все права защищены.