Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 2- Введение в язык запросов SQL.docx
Скачиваний:
5
Добавлен:
14.11.2019
Размер:
88.61 Кб
Скачать

Ключевые слова cube и rollup

Ключевые слова cube и rollup предназначены для выполнения многомерно­го анализа данных в одной команде SQL.

В командах SQL они не могут при­сутствовать одновременно.

С помощью этой конструкции выполняется сверхагрегирование данных.

Обычные функции агрегирования применяются к строкам группы и возвра­щают единственное значение для всей группы. При использовании ключевых слов cube или rollup происходит вычисление функции агрегирования для значений, возвращаемых для каждой колонки.

cube создает итоговый набор, который показывает сводные показатели для всех комбинаций значений в выбранных колонках.

Каждое сочетание значений столбцов, входящих в секцию group by, порож­дает совокупность групп. Для каждого неповторяющегося значения столбца из списка группировки cube создает дополнительную запись, в которой столбцу присвоено значение null. Это значение null представляет все значе­ния данного столбца.

Например, пусть имеется таблица с именем Таблица1, содержащая следующие записи:

Столбец 1

Столбец 2

Столбец 3

1

abc

1

1

def

2

1

ghi

3

1

abc

4

2

def

5

2

ghi

6

Далее представлен запрос с with cube и его результат:

SELECT [Столбец 1], [Столбец 2], SUM([Столбец 3])

FROM Таблица1

GROUP BY [Столбец 1], [Столбец 2] WITH CUBE

Результат запроса:

Столбец 1

Столбец 2

Столбец 3

1

abc

5

1

def

2

1

gbi

3

1

NULL

10

2

def

5

2

ghi

6

2

NULL

11

NULL

NULL

21

NULL

abc

5

NULL

def

7

NULL

ghi

9

rollup создает итоговый набор, который демонстрирует сводные показатели для иерархии значений в выбранных колонках.

rollup не возвращает все возможные комбинации значений.

Группировка rollup образуется из столб­цов, расположенных справа от значения текущего столбца.

SELECT [Столбец 1], [Столбец 2], SUM([Столбец 3])

FROM Таблица1

GROUP BY [Столбец 1], [Столбец 2] WITH ROLLUP

Результат запроса:

Столбец 1

Столбец 2

Столбец 3

1

abc

5

1

def

2

1

ghi

3

1

NULL

10

2

def

5

2

ghi

6

2

NULL

11

NULL

NULL

21