Оператор ROLLUP
обеспечивает агрегаты и суперагрегаты для выражений в инструкции GROUP BY
. Оператор ROLLUP
может использоваться разработчиками отчетов для извлечения статистики и сводных данных из наборов результатов.
Накопительные агрегаты могут использоваться в отчетах, диаграммах и графиках.
ROLLUP
– это расширение предложенияGROUP BY
.- Используйте операцию
ROLLUP
для создания накопительных агрегатов, таких как промежуточные итоги.
Оператор ROLLUP создает группирования, перемещаясь в одном направлении, справа налево, вдоль списка столбцов, заданных в предложении GROUP BY
. Затем к этим группированиям применяется функция агрегирования.
Примечание
- Чтобы создать промежуточные итоги для n измерений (т.е. n столбцов в предложении
GROUP BY
) без оператораROLLUP
, n+1 инструкцийSELECT
должны быть связаны с помощьюUNION ALL
. Это может сделать выполнение запроса неэффективным, так как каждая из этих инструкцийSELECT
обращается к таблице. ОператорROLLUP
обеспечивает получение результатов всего за одно обращение к таблице. ОператорROLLUP
полезен, если для получения промежуточных итогов используется большое количество столбцов. - Промежуточные итоги и итоговые значения создаются с помощью оператора
ROLLUP
.Оператор
CUBE
также создает итоги, но эффективно выполняет сверстку в каждом возможном направлении, создавая данные перекрестной таблицы.
Далее: Проход дерева снизу вверх и сверху вниз