PaliSkill
SQL — Fonctions de fenêtrage

Leçon 2 / 9 — Chapitre 2: Isoler le top N par groupe

PERCENT_RANK() : la position relative dans le classement

PERCENT_RANK() exprime le rang d'une ligne comme une proportion entre 0 et 1 : 0 pour la première place, 1 pour la dernière, peu importe le nombre total de lignes. La formule est (rang - 1) / (N - 1), où rang provient de RANK() (les ex-aequo partagent la même valeur) et N est le nombre total de lignes.

SELECT nom, anciennete,
  PERCENT_RANK() OVER (ORDER BY anciennete DESC) AS position_relative
FROM employes;

Sur les 6 employés (N = 6) : David et Farid, ex-aequo au rang 1, reçoivent (1-1)/5 = 0. Amara, rang 3 (le rang 2 est sauté à cause de l'ex-aequo), reçoit (3-1)/5 = 0.4. Baptiste et Chloé, ex-aequo au rang 4, reçoivent (4-1)/5 = 0.6. Elise, dernière au rang 6, reçoit (6-1)/5 = 1.

À retenir :

  • PERCENT_RANK() renvoie toujours une valeur entre 0 (première place) et 1 (dernière place), quel que soit le nombre de lignes.
  • Les lignes ex-aequo (même rang RANK) partagent la même valeur de PERCENT_RANK.
  • Cette mesure permet de comparer des classements de tailles différentes sur une échelle commune (0 à 1), ce qu'un simple rang ne permet pas.

À vous de jouer : quelle est la valeur de position_relative pour Amara ?

🔒

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