PARTITION BY - 列で区分
PARTITION BY 句を使うと、指定した区分に基づき、個別の計算を行えます。例えば、各シーズンの平均得点を計算し、その値を列として追加表示できます。
この練習では、ポーランドのトップチームである Legia Warszawa (ワルシャワ・リーグ)の試合データセットを作成し、各試合の成績をそのシーズン全体の平均と比較します。
どこに外れ値が多くありますか?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 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;