Začněte nyníZačněte zdarma

Žebříček sportovců z více zemí

V předchozím cvičení jsi použil/a RANK k sestavení žebříčku pro jednu skupinu sportovců. V reálných datech ale často narazíš na víc skupin najednou. Bez rozdělení dat by hodnoty jedné skupiny ovlivňovaly pořadí ostatních.

Navíc RANK při shodných hodnotách čísla přeskakuje, ale přirozenější způsob řazení přeskakování nepoužívá. Pokud jsou dvě země na shodném druhém místě, většina lidí by považovala další zemi za třetí.

Toto cvičení je součástí kurzu

PostgreSQL Summary Stats and Window Functions

Zobrazit kurz

Pokyny k cvičení

  • Seřaď sportovce každé země podle počtu získaných medailí – čím vyšší počet, tím vyšší pozice v žebříčku – bez přeskakování čísel při shodných hodnotách.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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;
Upravit a spustit kód