OVER / PARTITION BY
Определяет окно для оконных функций.
Сигнатура
func() OVER (PARTITION BY col ORDER BY col)Конструкция OVER превращает функцию в оконную: расчёт идёт по «окну» строк без схлопывания результата. PARTITION BY делит данные на группы, ORDER BY задаёт порядок внутри окна.
SELECT name, dept, salary,
AVG(salary) OVER (PARTITION BY dept) AS avg_in_dept
FROM employees;
-- к каждой строке добавляется средняя зарплата по её отделу