Classer les athlètes selon le nombre de médailles remportées
Au chapitre 1, vous avez utilisé ROW_NUMBER pour classer les athlètes selon les médailles attribuées. Toutefois, ROW_NUMBER assigne des numéros différents à des athlètes ayant le même nombre de médailles, ce qui en fait une mauvaise fonction de classement : si deux athlètes ont remporté le même nombre de médailles, ils devraient avoir le même rang.
Cette activité fait partie du cours
Fonctions de synthèse et de fenêtre dans PostgreSQL
Instructions de l’exercice
- Classez chaque athlète selon le nombre de médailles qu'il a remportées — plus le nombre est élevé, plus le rang est élevé — en attribuant le même numéro en cas de valeurs identiques.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
WITH Athlete_Medals AS (
SELECT
Athlete,
COUNT(*) AS Medals
FROM Summer_Medals
GROUP BY Athlete)
SELECT
Athlete,
Medals,
-- Rank athletes by the medals they've won
___ OVER (ORDER BY ___ DESC) AS Rank_N
FROM Athlete_Medals
ORDER BY Medals DESC;