子查詢無所不在
在足球聯賽中,賽事會分成不同的「階段」。獲勝的球隊會從一個階段晉級到下一個階段,直到進入決賽。每個階段的賽事重要性都比前一階段更高。match 資料表包含每場比賽所處的不同階段資料。
在本課中,你將透過 3 個練習建立一個最終查詢,當中會包含 3 個子查詢——分別位於 SELECT、FROM 與 WHERE 子句。在最後一個練習中,你的查詢會擷取資料,分析各比賽階段的平均進球數。當賽事從一個階段晉級到下一個階段、重要性提升時,平均進球數是否也會改變?
本練習屬於課程
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 ___;