PARTITION BY - 複数列での区分
PARTITION BY 句を使うと、ウィンドウ関数で出した平均を、複数のデータポイント(列)の組み合わせで区分できます。パーテーションで使うカテゴリーのデータを自分で計算することも可能です。例えば、シーズンと国ごと、または暦年ごと(date 列から取得)に、平均得点を計算できます。
この練習では、Legia Warszawa とその対戦相手のホームとアウェイの平均得点を、各シーズンの月ごとに計算します。
この演習はコースの一部です
SQL のデータ操作
演習の手順
- ホームとアウェイの平均得点を、各シーズンの月ごとに区分するウィンドウ関数を 2 つ作成してください。
- 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;