1. 学ぶ
  2. /
  3. コース
  4. /
  5. SQL のデータ操作

Connected

演習

CTE で整理する

第2章では、総得点が 10 以上の試合の数を国ごとに集計したリストを作成しました。その時のクエリでは、メインクエリで集計を行う前に試合を絞り込むために、FROM 句にサブクエリを使用しました。作成したクエリは以下のとおりです。

SELECT
  c.name AS country,
  COUNT(sub.id) AS matches
FROM country AS c
INNER JOIN (
  SELECT country_id, id 
  FROM match
  WHERE (home_goal + away_goal) >= 10) AS sub
ON c.id = sub.country_id
GROUP BY country;

1 つ以上のサブクエリを共通テーブル式(CTE)でメインクエリの前に宣言することもできます。これは、情報を整理し、論理的な順序でクエリを構成するのに非常に便利です。

この練習では、上と同様のクエリを、CTE を使って書き直してみましょう。

指示

100 XP
  • CTE を宣言するための構文を完成させてください。
  • CTE の中で、match テーブルから country_id とid を選択してくださいう。
  • country_id を使って、CTE をリーグテーブルに LEFT JOIN してください。