SELECT
name,
salary,
RANK() OVER (PARTITION BY dept ORDER BY salary DESC) AS rank,
SUM(salary) OVER (PARTITION BY dept) AS dept_total,
AVG(salary) OVER () AS company_avg
FROM employees;ROW_NUMBER() — порядковий номер у вікніRANK() / DENSE_RANK() — ранг (з пропусками / без)LAG(col, n) / LEAD(col, n) — значення з попереднього/наступного рядкаSUM / AVG / MAX OVER (...) — агрегати по вікну без GROUP BYGROUP BY згортає рядки в один. Window function зберігає всі рядки і додає обчислене значення до кожного.