Назад к вопросам
Middle
5
Window functions — что это такое, как работают, какие виды знаешь?
Компании, где спрашивали
Магнум
Ответ от нейросети
sobes.tech AI
Window functions — это специальные функции в SQL, которые позволяют выполнять вычисления по набору строк, связанных с текущей строкой, без группировки данных. Они работают поверх результата запроса, сохраняя при этом все строки.
Принцип работы:
- Каждая строка получает вычисленное значение на основе окна — набора строк, определённого с помощью
OVER(). - Окно можно задавать с помощью
PARTITION BY(разбиение на группы) иORDER BY(порядок внутри группы).
Основные виды window functions:
- Агрегатные функции:
SUM(),AVG(),COUNT(),MIN(),MAX()— применяются по окну. - Ранжирующие функции:
ROW_NUMBER(),RANK(),DENSE_RANK(),NTILE()— нумеруют или распределяют строки. - Функции смещения:
LAG(),LEAD()— позволяют получить значение из предыдущей или следующей строки.
Пример:
SELECT employee_id, department_id, salary,
AVG(salary) OVER (PARTITION BY department_id) AS avg_dept_salary
FROM employees;
Здесь для каждого сотрудника вычисляется средняя зарплата по его отделу без группировки строк.