Ранжування спортсменів за кількістю медалей
У розділі 1 ви використовували ROW_NUMBER, щоб упорядкувати спортсменів за кількістю отриманих медалей. Проте ROW_NUMBER призначає різні номери спортсменам із однаковою кількістю медалей, тож це не придатна функція для ранжування; якщо двоє спортсменів здобули однакову кількість медалей, вони мають мати однаковий ранг.
Ця вправа є частиною курсу
Підсумкова статистика та віконні функції в PostgreSQL
Інструкції до вправи
- Присвойте кожному спортсмену ранг за кількістю здобутих медалей: що більше медалей, то вищий ранг; у разі однакових значень — однакові номери.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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;