PaliSkill
SQL — Fonctions de fenêtrage

Leçon 7 / 9 — Chapitre 7: Mise en pratique : sport et compétition

Isoler la meilleure performance de chaque club avec RANK

Comme au chapitre 2, isoler un rang exige une sous-requête ou une CTE — le même principe s'applique ici, avec un ORDER BY ASC.

SELECT nom, club, edition, temps_secondes
FROM (
  SELECT a.nom, a.club, p.edition, p.temps_secondes,
    RANK() OVER (PARTITION BY a.club ORDER BY p.temps_secondes ASC) AS rang_club
  FROM performances p
  JOIN athletes a ON a.id = p.athlete_id
) AS classement
WHERE rang_club = 1;

Résultat : 2 lignes — Yasmine (Aigles, édition 2, 58 secondes) et Leila (Requins, édition 2, 64 secondes), chacune la meilleure performance de son club. Si deux performances d'un même club avaient été à égalité au temps le plus bas, RANK() les aurait toutes les deux incluses — exactement comme au chapitre 2.

À retenir :

  • Le choix entre RANK() et ROW_NUMBER() pour isoler un « meilleur » par groupe (chapitre 2) s'applique de la même façon ici : RANK() n'exclurait jamais injustement un ex-aequo au temps le plus bas.

À vous de jouer : combien de lignes ce résultat contient-il au total ?

🔒

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