CommencerCommencer gratuitement

Classement des athlètes de plusieurs pays

Dans l'exercice précédent, vous avez utilisé RANK pour attribuer des classements à un groupe d'athlètes. Dans les données réelles, cependant, vous trouverez souvent de nombreux groupes au sein de vos données. Sans partitionner vos données, les valeurs d'un groupe influenceront le classement des autres.

De plus, bien que RANK ignore les numéros en cas de valeurs identiques, la manière la plus naturelle d'attribuer des classements consiste à ne pas ignorer les numéros. Si deux pays sont à égalité en deuxième position, le pays qui les suit est généralement considéré comme troisième par la plupart des gens.

Cet exercice fait partie du cours

Statistiques récapitulatives et fonctions de fenêtrage PostgreSQL

Afficher le cours

Instructions

  • Classez les athlètes de chaque pays en fonction du nombre de médailles qu'ils ont remportées : plus le nombre est élevé, plus le classement est élevé, sans omettre de numéros en cas de valeurs identiques.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

WITH Athlete_Medals AS (
  SELECT
    Country, Athlete, COUNT(*) AS Medals
  FROM Summer_Medals
  WHERE
    Country IN ('JPN', 'KOR')
    AND Year >= 2000
  GROUP BY Country, Athlete
  HAVING COUNT(*) > 1)

SELECT
  Country,
  -- Rank athletes in each country by the medals they've won
  ___,
  ___ OVER (PARTITION BY ___
                ORDER BY Medals DESC) AS Rank_N
FROM Athlete_Medals
ORDER BY Country ASC, RANK_N ASC;
Modifier et exécuter le code