PaliSkill
SQL — Fonctions de fenêtrage

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

RANK ou ROW_NUMBER pour un top-N : lequel choisir ?

Le choix entre les deux dépend d'une seule question : un nombre de résultats fixe est-il exigé, ou l'équité envers les ex-aequo prime-t-elle ?

ROW_NUMBER() convient quand un nombre de lignes précis est nécessaire — par exemple, un encart d'affichage à taille fixe (« montrer exactement 3 produits vedettes »), où il faut bien choisir 3 lignes, même arbitrairement en cas d'égalité.

RANK() convient quand aucun ex-aequo ne doit être injustement exclu — par exemple, un podium ou une liste de gagnants, où toute personne à égalité avec la première place mérite d'apparaître, quitte à afficher plus de lignes que prévu.

À retenir :

  • ROW_NUMBER() garantit un nombre de lignes fixe, au prix d'un départage parfois arbitraire des ex-aequo.
  • RANK() garantit qu'aucun ex-aequo n'est injustement exclu, au prix d'un nombre de lignes parfois supérieur au N visé.
  • Aucune des deux n'est « la bonne » dans l'absolu : le choix dépend du besoin métier exact.

À vous de jouer : pour afficher un podium (1ʳᵉ, 2ᵉ, 3ᵉ place) où un ex-aequo à la 2ᵉ place doit absolument apparaître, laquelle des deux fonctions choisiriez-vous ?

🔒

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