Что такое оконные функции?

Middle+
924 просмотров
AFK Offer AI

Оконные функции позволяют вычислять агрегаты по группам строк, не схлопывая результат как GROUP BY. Ты получаешь и исходные строки, и агрегированные значения одновременно.

SELECT name, salary,
    AVG(salary) OVER (PARTITION BY department) as dept_avg,
    ROW_NUMBER() OVER (ORDER BY salary DESC) as rank
FROM employees;

PARTITION BY — по какой группе считать, ORDER BY — в каком порядке. Популярные функции: ROW_NUMBER, RANK, DENSE_RANK, LAG, LEAD, SUM, AVG. Незаменимы для аналитики: топ-N в каждой группе, накопительные суммы, сравнение с предыдущей строкой. На собесе часто просят написать запрос с ROW_NUMBER для дедупликации.

Следующий вопрос

Что такое repository pattern?