Оператор 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также создает итоги, но эффективно выполняет сверстку в каждом возможном направлении, создавая данные перекрестной таблицы.
Далее: Проход дерева снизу вверх и сверху вниз