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 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