Слайд 2
Предложение group by
[GROUP BY выражение группировки]
[HAVING условие отбора
групп]
Слайд 3
GROUP BY с ROLLUP
Функция rollup, добавляет итоговые данные
по промежуточным уровням группировки
Синтаксис:
[GROUP BY rollup(поля группировки)]
Например:
GROUP BY rollup(a,b,c)
Это
группировки по (a,b,c), (a,b), (a), общий итог
Слайд 4
GROUP BY с CUBE
Функция cube, добавляет итоговые данные
по промежуточным уровням группировки
Синтаксис:
[GROUP BY cube(поля группировки)]
Например:
GROUP BY cube(a,b,c)
Это
группировки по (a,b,c), (a,b), (a,c), (b,c), (a), (b), (c), общий итог
Слайд 5
Классификация
Функции ранжирования
Статистические функции для плавающего интервала
Функции подсчета долей
и итогов
Статистические функции LAG/LEAD с запаздывающим/опережающим аргументом
Статистические функции
Слайд 6
Синтаксис
ИМЯ_ФУНКЦИИ (, , …)
OVER
(
)
Слайд 12
Фрагментация
Задается предложением
PARTITION BY выражение [, выражение …]
Разбивает результирующее
множество на N групп по критериям, задаваемым выражениями фрагментации.
Если
не указать фрагментацию, то результирующее множество считается одной группой.
Слайд 13
Фрагментация: примеры
Sample_script_01_x.sql
Слайд 14
Конструкция упорядочивания
ORDER BY выражение [ASC | DESC]
[NULLS FIRST
| NULLS LAST]
Задает упорядочивание в каждой группе
При отсутствии конструкции
ORDER BY аналитическая функция вычисляется по всей группе целиком
Слайд 15
Упорядочивание: примеры
Sample_script_02_x.sql
Слайд 16
Выполнение вычислений по плавающему окну
{ROWS | RANGE}
{{UNBOUNDED
| выражение}
PRECEDING | CURRENT ROW}
Слайд 17
Выполнение вычислений по плавающему окну
{ROWS | RANGE} BETWEEN
{{UNBOUNDED
PRECEDING | CURRENT ROW | {UNBOUNDED | выражение 1}
{PRECEDING | FOLLOWING }}
AND
{{UNBOUNDED FOLLOWING | CURRENT ROW | {UNBOUNDED | выражение 2} {PRECEDING | FOLLOWING }}
Фразы PRECEDING и FOLLOWING задают верхнюю и нижнюю границы агрегирования
Слайд 18
Окна диапазона
Применяются только для типов дата и число
Синтаксис
RANGE
выражение PRECEDING
Sample_Script_03_a
Слайд 19
Окна строк
Задаются в физических единицах, строках
Синтаксис
ROWS выражение PRECEDING
Sample_Script_03_b
Слайд 20
Задание окон
UNBOUNDED PRECEDING – окно начинается с первой
строки текущей группы и заканчивается текущей строкой
CURRENT ROW –
окно начинается и заканчивается текущей строкой
числовое_выражение PRECEDING – окно начинается за числовое_выражение строк до текущей (если по строкам) или со строки, меньшей по значению столбца, упомянутого в ORDER BY, не более чем на числовое_выражение (если по диапазону)
Слайд 21
Задание окон
Конструкция BETWEEN
CURRENT ROW можно указывать как начальную
или конечную строку окна
Числовое_выражение FOLLOWING – окно заканчивается (или
начинается) со строки, через числовое_выражение строк после текущей (если по строкам) или со строки, большей по значению столбца ORDER BY, не более чем на числовое_выражение (если по диспазону)