Window Functions
PostgreSQL 🔴 SeniorDéfinition
Fonctions qui opèrent sur un ensemble de lignes (fenêtre) lie a la ligne courante sans réduire le nombre de résultats. Incluent ROW_NUMBER, RANK, LAG, LEAD, SUM OVER, etc.
Analogie
Un coureur qui voit son classement en temps réel pendant la course, sans que la course s'arrête.
Exemple de code
SELECT name, salary,
RANK() OVER (ORDER BY salary DESC) as rank,
salary - LAG(salary) OVER (ORDER BY salary DESC)
as diff_with_prev
FROM employees;
Cas d'usage
Calculer des classements, des moyennes mobiles ou comparer chaque ligne avec la précédenté/suivante.
Anti-pattern
Utiliser des sous-requêtes corrélées pour simuler des window functions, beaucoup plus lent.