始める無料で始める

あらゆる場所に現れるサブクエリ

サッカーリーグでは、試合はさまざまなステージ(段階)で行われます。勝ち進んだチームは次のステージへと進み、最終ステージに到達します。ステージが進むごとに、賭けられるものは大きくなっていきます。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 ___;
コードを編集して実行