НачатьНачать бесплатно

Ранжирование спортсменов по количеству медалей

В главе 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;
Редактировать и запускать код