...
ROLLUP строит агрегаты-подытоги (subtotal aggregates) на каждом запрошенном уровне, включая окончательные итоги (grand total) - по сути, с помощью этого расширения осуществляется группировка по комбинациям столбцов (иерархии), то есть сначала по n столбцам, потом по n-1, ..., пустое множество и «делает union». (Пример: свертка нарастающим итогом). Все столбцы в rollup должны быть выбраны в запросе, но можно использовать не все выбранные столбцы:
select ... group by список_столбцов, rollup (список_столбцов)
Короткий запрос и эффективное выполнение (группировка по n-1 столбцам использует результаты группировки по n столбцам и т.д.)
Пример
Как правило агрегатом является сумма, но это может быть и любой другой: AVG, COUNT, MIN, MAX и др. Запрещено использование агрегатов более низких уровней. Список столбцов может содержать до 255 столбцов.
Пример:
| Блок кода | ||||
|---|---|---|---|---|
| ||||
SELECT Time, Region, Department, SUM(Profit) FROM Sales GROUP BY ROLLUP (Region, Department) |