Sobes.tech
Назад к вопросам
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;

Здесь для каждого сотрудника вычисляется средняя зарплата по его отделу без группировки строк.