CommencezCommencez gratuitement

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

Voir le cours

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;
Modifier et exécuter le code