在 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;