開始使用免費開始

依獎牌數替運動員排名

在第 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;
編輯並執行程式碼