OVER 句で試合を分析
OVER() 句を使うと、SELECT 句内のサブクエリと同様に、集計関数をデータセット全体の各行に適用できます。さらに、OVER() 句には SELECT 句内のサブクエリよりも大きな利点があります。クエリの実行速度が速くなるほか、OVER() 句では、さまざまな関数や句を追加できます。これについては、本章の後半で詳しく学びます。
この練習では、前の章で作成したクエリを OVER() 句を使って書き直しましょう。
この演習はコースの一部です
SQL のデータ操作
演習の手順
matchテーブルとcountryテーブルから、matchID、countryname、season、home_goal、away_goalを選択してください。- 全体の平均得点を計算し、ウィンドウ関数を使って各行にその集計値を付与するクエリを完成させましょう。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
SELECT
-- Select the match id, country name, season, home, and away goals
___,
c.___ AS country,
m.season,
___.home_goal,
___,
-- Use a window to include the aggregate average in each row
___(___.home_goal + ___) ___ AS overall_avg
FROM match AS m
LEFT JOIN country AS c ON m.country_id = c.id;