Ранжирование спортсменов по количеству медалей
В главе 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;