Продвинутый
Что такое оконные функции (Window Functions) и чем они отличаются от GROUP BY?
GROUP BY схлопывает (агрегирует) строки. Если у вас было 100 сотрудников в 5 отделах, GROUP BY department вернет ровно 5 строк (по одной на отдел).
Оконные функции (OVER) выполняют вычисления для набора строк, но сохраняют исходные строки.
Они просто добавляют к каждой из 100 строк новую колонку с результатом вычисления (например, среднюю зарплату по отделу).
Пример: Вывести список всех сотрудников, их зарплату и среднюю зарплату по их отделу (чтобы сравнить, кто получает больше среднего).
SELECT name, salary,
AVG(salary) OVER (PARTITION BY department) as avg_dep_salary
FROM employees;