FROM 句内のサブクエリを発展させる
前の練習では、データベースにある全試合の得点を合計して 10 点以上になる国は、イングランド、オランダ、ドイツ、スペインの 4 か国のみであることが分かりました。次は、これらの試合について詳しく調べましょう。試合が行われた日付、シーズン、そしてホーム得点とアウェイ得点の内訳を確認します。
今回の練習では、メインクエリで選択するすべての列にテーブルのエイリアスが付いていないことに気づくでしょう。これは、メインクエリ が サブクエリ からデータを取得しており、そのサブクエリが 1つのテーブル として扱われているためです。
この演習はコースの一部です
SQL のデータ操作
演習の手順
FROM句内のサブクエリを完成させてください。countryテーブルからcountrynameを、matchテーブルからdate、home_goal、away_goal、total_goalsの各列を選択してください。- サブクエリ内に、ホーム得点とアウェイ得点を合計した、
total_goalsという名前の列を作成してください。この列はメインクエリでフィルターとして使用します。 - メインクエリで
country、date、home_goal、away_goalを選択してください。 - 総得点が 10以上 の試合でメインクエリをフィルタリングしてください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
SELECT
-- Select country, date, home, and away goals from the subquery
___,
date,
___,
away_goal
FROM
-- Select country name, date, home_goal, away_goal, and total goals in the subquery
(SELECT ___ AS country,
m.date,
___,
m.away_goal,
(___ + m.away_goal) AS total_goals
FROM match AS m
LEFT JOIN country AS c
ON m.country_id = c.id) AS subq
-- Filter by total goals scored in the main query
WHERE total_goals ___ ___;