Агрегатні та віконні функції
Функції, доступні в трансформаціях Групування (Агрегація) та Віконні функції.
Агрегатні функції
Використовуються в трансформації Групування для підсумовування груп рядків.
| Функція | Опис |
|---|---|
count |
Кількість рядків у групі |
sum |
Сума числових значень |
mean |
Середнє (арифметичне) |
median |
Медіана (50-й перцентиль) |
min |
Найменше значення |
max |
Найбільше значення |
distinct |
Кількість унікальних значень |
stdev |
Стандартне відхилення |
first |
Перше значення в групі |
last |
Останнє значення в групі |
Приклад
Групування за Region, агрегація Sales з sum:
Region | sum_Sales
--------|---------
North | 45000
South | 32000
Віконні функції
Використовуються в трансформації Віконні функції. Додають обчислювані стовпці на основі позиції рядка без зменшення кількості рядків.
Ранжування
| Функція | Опис | Приклад виводу |
|---|---|---|
row_number |
Послідовна нумерація | 1, 2, 3, 4, 5 |
rank |
Ранг з пропусками для однакових | 1, 2, 2, 4, 5 |
dense_rank |
Ранг без пропусків | 1, 2, 2, 3, 4 |
percent_rank |
Відсотковий ранг (від 0 до 1) | 0, 0.25, 0.5, 0.75, 1 |
ntile |
Розподіл на N рівних груп | 1, 1, 2, 2, 3 |
Зміщення
| Функція | Опис |
|---|---|
lag |
Значення з N рядків перед поточним |
lead |
Значення з N рядків після поточного |
first_value |
Перше значення в розділі |
last_value |
Останнє значення в розділі |
Заповнення
| Функція | Опис |
|---|---|
fill_down |
Замінює null найближчим не-null значенням зверху |
fill_up |
Замінює null найближчим не-null значенням знизу |
Приклад віконної функції
Сортування за Date, додавання lag(Sales, 1):
Date | Sales | lag_Sales
-----------|-------|----------
2024-01-01 | 100 | null
2024-01-02 | 150 | 100
2024-01-03 | 120 | 150
Поради
- Order By обов'язковий для коректних результатів — визначає послідовність рядків
- Partition By перезапускає вікно для кожної групи (як GROUP BY, але без згортання рядків)
- Lag/Lead приймають зміщення (за замовчуванням 1) та необов'язкове значення за замовчуванням для крайніх рядків
- N-Tile розподіляє рядки на вказану кількість рівних груп