tgoop.com/big_data_systems_analysis/98
Create:
Last Update:
Last Update:
Немного об оконных функциях
Рассказывать о простом SQL можно много и долго, но давайте перейдем к более глубоким темам. Например, поговорим об оконных функциях. И перед тем как перейти к деталям, выясним, что же такое окошки?
Это инструмент, позволяющий углубить анализ и обработку данных. Если в обычном запросе мы работаем со всеми данными или с определенной группой, то оконные функции позволяют проводить вычисления, не прибегая к фактическому схлопыванию данных. То есть они позволяют сохранить информацию о каждой строке.
Окно — набор строк, который указанным образом связан с текущей строкой.
Оконные функции обрабатывают данные в рамках окна, которое задается с помощью параметров:
1. Разделение на группы —
PARTITION BY
.2. Упорядочивание данных внутри каждой группы —
ORDER BY
.3. Определение диапазона строк для группы, над которыми будет производиться вычисление (
ROWS BETWEEN
) — поддерживается не всеми оконками.Ниже показан расчет средней зарплаты по отделам. Каждая строка результата будет содержать данные о сотруднике, его отделе, зарплате и средней зарплате по его отделу.
SELECT
employee_id,
department,
salary,
AVG(salary) OVER(PARTITION BY department) as department_salary_avg
FROM employees;
Оконные функции предоставляют возможности для решения большого количества различных аналитических задач, например таких как:
— Анализ трендов и изменений
— Вычисление всевозможных рейтингов (ранжирование)
— Расчет скользящего среднего
— Сравнение со смещением
— Всевозможные агрегации
— Расчет кумулятивных сумм
— Определение первого/последнего значения в группе
— ...
Окошки незаменимы для аналитиков данных, и крайне важно понимать принцип их работы. А если вы умеете использовать не только стандартные агрегаты и ранжирование, а также владеете фреймами, то это в разы повысит вашу ценность как специалиста.
Следите за каналом) в следующих статьях рассмотрим применение конкретных оконных функций под различные задачи.
#sql #оконные_функции
BY В мире больших данных

Share with your friend now:
tgoop.com/big_data_systems_analysis/98