開始使用免費開始

以欄位進行 PARTITION BY

PARTITION BY 子句可以依你想切分結果的欄位來計算各自的「視窗」。例如,你可以建立一個欄位,為每個球季計算整體的平均進球數。

在這個練習中,你會建立一個由波蘭排名最高的球隊 Legia Warszawa(華沙聯隊)所參與的比賽資料集,並將他們每一場比賽的表現與該球季的整體平均做比較。

你覺得哪裡比較常出現離群值?是 Legia Warszawa 的主場還是客場比賽?

本練習屬於課程

SQL 資料操作

檢視課程

練習說明

  • 完成兩個計算主隊與客隊進球「平均值」的視窗函式。將視窗函式依「球季」進行分割(partition),以分別計算每個球季的平均值。
  • 將查詢「過濾」為只包含 Legia Warszawaid = 8673)參與的比賽。

動手互動練習

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

SELECT
	date,
	season,
	home_goal,
	away_goal,
	CASE WHEN hometeam_id = 8673 THEN 'home' 
		 ELSE 'away' END AS warsaw_location,
    -- Calculate separately the average home and away goals scored, partitioned by season
    ___(___) ___(___ ___ ___) AS season_homeavg,
    ___(___) ___(___ ___ ___) AS season_awayavg
FROM match
-- Filter the data set for Legia Warszawa (id 8673) matches only
WHERE 
	___ = ___ 
    OR ___ = ___
ORDER BY (home_goal + away_goal) DESC;
編輯並執行程式碼