SELECT内でサブクエリを使った計算
SELECT 内のサブクエリは、クエリ内で計算列を作成する際に便利な方法です。SELECT 内のサブクエリは単一の数値として扱われ、計算に利用できます。SELECT 内にサブクエリを書く際は、メインクエリへの絞り込みがサブクエリには適用されない点(逆も同様)に注意しましょう。
前の練習では、2013/2014 シーズンにおける各リーグの平均総得点と全体の平均得点を比較する列を作成しました。この練習では、全体の平均をサブクエリから引くことで、これらの値を直接比較する列を追加します。
この演習はコースの一部です
SQL のデータ操作
演習の手順
- メインクエリで、各リーグごとの平均得点を取得します。
- サブクエリで、
'2013/2014'シーズン全体の平均得点を取得します。 - 各リーグの平均得点から、サブクエリで求めた値を引き算します。
'2013/2014'シーズンの試合のみが対象となるよう、メインクエリを絞り込みます。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
SELECT
-- Select the league name and average goals scored
___ AS league,
ROUND(___(___ + m.away_goal),2) AS avg_goals,
-- Subtract the overall average from the league average
ROUND(AVG(___ + m.away_goal) ___
(SELECT ___(___ + away_goal)
FROM match
WHERE ___ = ___),2) AS diff
FROM league AS l
LEFT JOIN match AS m
ON l.country_id = m.country_id
-- Only include 2013/2014 results
WHERE ___ = ___
GROUP BY l.name;