PaliSkill
SQL — Fonctions de fenêtrage

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

Filtrer avec PERCENT_RANK : garder le premier quart du classement

Comme pour ROW_NUMBER ou RANK, filtrer sur PERCENT_RANK() exige de passer par une sous-requête ou une CTE.

SELECT nom FROM (
  SELECT nom,
    PERCENT_RANK() OVER (ORDER BY anciennete DESC) AS pr
  FROM employes
) t WHERE pr <= 0.25;

D'après la leçon 2 de ce chapitre, David et Farid ont tous deux pr = 0 (premier rang, ex-aequo) ; Amara a pr = 0.4, déjà au-dessus du seuil de 0.25. Résultat : 2 lignes (David, Farid).

À retenir :

  • PERCENT_RANK() <= seuil isole une proportion du classement (ici, le quart le plus ancien), plutôt qu'un nombre fixe de lignes.
  • Cette technique s'adapte automatiquement à la taille de la table : sur une table de 1000 lignes, le même seuil 0.25 garderait environ 250 lignes, sans avoir à ajuster un nombre fixe.

À vous de jouer : Amara apparaît-elle dans ce résultat ? Justifiez à partir de sa valeur de PERCENT_RANK (0.4).

🔒

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