Leçon 8 / 9 — Chapitre 7: Mise en pratique : sport et compétition
Comparer un rang de club à un rang général
La portée d'un PARTITION BY change complètement le sens d'un rang — comparer les deux côte à côte le rend concret.
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,
RANK() OVER (ORDER BY p.temps_secondes ASC) AS rang_general
FROM performances p
JOIN athletes a ON a.id = p.athlete_id;
rang_general ne comporte aucun PARTITION BY : il classe les 8 performances entre elles, toutes confondues. Pour la performance de Malik à l'édition 1 (66 secondes) : rang_club = 4 (la moins bonne des 4 performances des Aigles) ; rang_general = 5, à égalité avec Samuel à l'édition 2 (qui a également couru en 66 secondes, mais chez les Requins).
À retenir :
- Une même ligne peut avoir un rang très différent selon la portée choisie (un club de 4 performances vs 8 performances au total) — toujours vérifier quelle portée une question métier attend réellement.
- Un rang général peut créer des ex-aequo qui n'existaient pas dans un rang par club, dès que deux athlètes de clubs différents partagent exactement le même temps.
À vous de jouer : rang_club et rang_general sont-ils identiques pour la performance de Malik à l'édition 1 ? Répondez par oui ou non.
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