PaliSkill
← 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 :

  1. 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é).
  2. 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).
  3. rang_equipe et rang_rank divergent 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 l'attestation finale.

8 000 XOF / 12,20 € / 13,29 $

Débloquez les 78 leçons restantes de ce module

Pour vous communiquer où envoyer le paiement.

Moyen de paiement souhaité

Nous vous contactons pour le paiement — activé dès réception.