Les fonctions de fenêtre effectuent des calculs sur un ensemble de lignes (une « fenêtre ») relatives à la ligne actuelle, sans les réduire à une seule ligne de sortie (contrairement aux agrégats avec GROUP BY). Elles permettent des analyses puissantes — totaux cumulés, classements, comparaisons avec d'autres lignes — tout en conservant chaque ligne dans le résultat.
La différence clé avec GROUP BY
GROUP BY → collapses groups into ONE row each (you lose individual rows)
Window function → computes across related rows but KEEPS every row
→ You get per-row detail AND aggregate/ranking info together.
