Что такое оконные функции (window functions)?

Ответ

Вычисления по строке "окна" (набору строк) без схлопывания в одну строку - в отличие от GROUP BY. Синтаксис: OVER (PARTITION BY ... ORDER BY ...).

SELECT id, name, salary,
  ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) AS rn,
  AVG(salary) OVER (PARTITION BY department_id) AS dept_avg
FROM employees;

Примеры: ROW_NUMBER, RANK, DENSE_RANK, LAG, LEAD, SUM/AVG OVER. Доступно в PostgreSQL, MySQL 8+, SQL Server.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.