以欄位進行 PARTITION BY
PARTITION BY 子句可以依你想切分結果的欄位來計算各自的「視窗」。例如,你可以建立一個欄位,為每個球季計算整體的平均進球數。
在這個練習中,你會建立一個由波蘭排名最高的球隊 Legia Warszawa(華沙聯隊)所參與的比賽資料集,並將他們每一場比賽的表現與該球季的整體平均做比較。
你覺得哪裡比較常出現離群值?是 Legia Warszawa 的主場還是客場比賽?
本練習屬於課程
SQL 資料操作
練習說明
- 完成兩個計算主隊與客隊進球「平均值」的視窗函式。將視窗函式依「球季」進行分割(partition),以分別計算每個球季的平均值。
- 將查詢「過濾」為只包含 Legia Warszawa(
id = 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;