あらゆる場所に現れるサブクエリ
サッカーリーグでは、試合はさまざまなステージ(段階)で行われます。勝ち進んだチームは次のステージへと進み、最終ステージに到達します。ステージが進むごとに、賭けられるものは大きくなっていきます。match テーブルには、各試合が行われたステージに関するデータが含まれています。
これから3つの演習を通じて、SELECT句、FROM句、WHERE句のそれぞれにサブクエリを含む1つのクエリを作成します。ステージが進んで賭けが大きくなるにつれて、平均得点数は変化するのでしょうか。
このクエリでは同じサブクエリを繰り返し使用することで、それぞれの配置場所を練習できるようにしています。クエリをコピーするたびに match テーブルを再度読み込むため、実際の作業では全体の平均を一度だけ計算することになります。これは第4章でウィンドウ関数を使って紹介します。
この演習はコースの一部です
SQL のデータ操作
演習の手順
SELECT句のサブクエリで、総得点数の平均を抽出します。- メインクエリでは、特定の
stageにおける総得点数の 平均 を計算します。 - サブクエリとメインクエリの両方を フィルタリング して、2012/2013 シーズンのデータのみを含めるようにします。
- クエリを
m.stage列でGROUP化します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
SELECT
-- Select the stage and average goals for each stage
m.stage,
ROUND(___(___ + m.away_goal),2) AS avg_goals,
-- Select the average overall goals for the 2012/2013 season
ROUND((SELECT ___(___ + away_goal)
FROM match
WHERE season = ___),2) AS overall
FROM match AS m
-- Filter for the 2012/2013 season
WHERE ___ = ___
-- Group by stage
GROUP BY ___;