Ž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
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;