← 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() <= seuilisole 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.25garderait 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