以多個欄位進行 PARTITION BY
PARTITION BY 子句可用來依多個資料點(欄位)切分視窗平均值。你甚至可以先計算出用來分割資料的資訊!例如,你可以計算依球季與國家,或依曆年(從日期欄位取得)的平均進球數。
在這個練習中,你要計算 Legia Warszawa 與其對手的主客場平均進球數,並依各球季中的月份來分割。
本練習屬於課程
SQL 資料操作
練習說明
- 建立兩個視窗函式,將主場與客場進球的平均數,依球季與月份進行分割。
- 將資料集篩選為 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 average goals partitioned by season and month
___(home_goal) ___(___ ___ ___,
EXTRACT(___ FROM date)) AS season_mo_home,
___(away_goal) ___(___ ___ ___,
EXTRACT(___ FROM date)) AS season_mo_away
FROM match
WHERE
hometeam_id = ___
OR awayteam_id = ___
ORDER BY (home_goal + away_goal) DESC;