← SQL — Fonctions de fenêtrage
Leçon 9 / 9 — Chapitre 1: Classer avec ROW_NUMBER, RANK, DENSE_RANK
Cas pratique : combiner plusieurs classements
Ce cas pratique combine PARTITION BY, ROW_NUMBER et RANK — les notions de ce chapitre.
SELECT nom, equipe, anciennete,
ROW_NUMBER() OVER (PARTITION BY equipe ORDER BY anciennete DESC, id ASC) AS rang_equipe,
RANK() OVER (PARTITION BY equipe ORDER BY anciennete DESC) AS rang_rank
FROM employes
ORDER BY equipe, rang_equipe;
Étape par étape :
- Dans l'équipe ventes : Amara (rang_equipe 1, rang_rank 1), Baptiste (rang_equipe 2, rang_rank 2), Chloé (rang_equipe 3, rang_rank 2 — ex-aequo avec Baptiste sur l'ancienneté).
- Dans l'équipe support : David (rang_equipe 1, rang_rank 1), Farid (rang_equipe 2, rang_rank 1 — ex-aequo avec David), Elise (rang_equipe 3, rang_rank 3).
rang_equipeetrang_rankdivergent exactement là où il y a un ex-aequo (Chloé, Farid) ; ils coïncident partout ailleurs.
À retenir :
- Calculer plusieurs fonctions de fenêtre dans une même requête permet de comparer directement leur comportement sur les mêmes données.
- Les deux colonnes ne divergent que sur les lignes concernées par un ex-aequo — un bon indicateur visuel pour repérer ces cas dans un vrai rapport.
À vous de jouer : rang_equipe et rang_rank sont-ils différents pour Chloé ? Justifiez à partir de son ancienneté.
🔒
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 72 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès