開始使用免費開始

各地區獲獎最多的選手

這個練習的目標是顯示每個地區獲獎最多的選手。要建立這個報表,你需要運用 ROW_NUMBER() 視窗函式。它會以遞增的整數為每一列編號,第一列是 1,第二列是 2,以此類推。

這個視窗函式的語法是 ROW_NUMBER() OVER (PARTITION BY field ORDER BY field)。請注意,函式本體不需要任何引數。

設定正確時,row_num = 1 就代表該地區獲獎最多的選手。若有多位選手總數相同,任何一位並列選手都有可能出現在最上方結果。請注意,你不能在 HAVINGWHERE 子句中使用視窗計算,因此需要用子查詢來篩選。

需要時可參考 E:R Diagram。我們會使用 summer_games_clean 以避免處理空值。

本練習屬於課程

SQL 報表製作

檢視課程

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

SELECT 
	-- Query region, athlete_name, and total gold medals
	____, 
    ____ AS athlete_name, 
    ____ AS total_golds,
    -- Assign a regional rank to each athlete
    ____ AS row_num
FROM ____ AS s
JOIN ____ AS a
ON ____
JOIN ____ AS c
ON ____
GROUP BY ____;
編輯並執行程式碼