ウィンドウ関数は、現在行に関連する行集合(window)に対して計算を行いながら、結果行を 1 行に集約しない関数です。GROUP BY と違い、各行を残したまま、ランキング、累積合計、前後行との比較などを実現できます。
GROUP BY との違い
text
GROUP BY → グループごとに 1 行へ集約する
Window function → 関連行にまたがって計算しつつ、各行は保持する
sql
SELECT
employee_id,
department_id,
salary,
AVG(salary) OVER (PARTITION BY department_id) AS avg_department_salary
FROM employees;
このクエリは社員ごとの行を残したまま、同じ部署の平均給与を各行に追加します。
