Что такое оконные функции в БД

Python Middle Без компании
Что такое оконные функции в БД
Ответы
Оконные функции (window functions) в SQL позволяют выполнять вычисления над набором строк, связанных с текущей строкой, без группировки результатов. Они работают с "окном" данных, определяемым через `OVER()`. Ключевые особенности: - Сохраняют исходное количество строк (в отличие от GROUP BY) - Позволяют получить агрегированные данные вместе с детализированными - Используют секции (PARTITION BY) и сортировку (ORDER BY) внутри окна Примеры распространенных оконных функций: ``` -- Ранжирование SELECT name, salary, RANK() OVER(ORDER BY salary DESC) as rank FROM employees; -- Агрегация SELECT department, employee, salary, AVG(salary) OVER(PARTITION BY department) as avg_dept_salary FROM employees; -- Скользящие вычисления SELECT date, revenue, SUM(revenue) OVER(ORDER BY date ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) as rolling_sum FROM sales; ``` Оконные функции особенно полезны для аналитических запросов, расчета скользящих средних, ранжирования данных и сравнения строк с агрегированными значениями.