相關子查詢入門
相關子查詢是會參照主查詢中一個或多個欄位的子查詢。相關子查詢必須依賴主查詢的資訊才能執行,因此無法獨立運行。
在 SQL 中,相關子查詢會對主查詢所取得的每一列資料各評估一次——這比起一般子查詢需要更多的運算資源與時間。
在這個練習中,你將使用相關子查詢找出各國比賽中分數的極端離群值——高於平均分數的 3 倍!
本練習屬於課程
SQL 資料操作
練習說明
- 在
WHERE中啟動子查詢,先計算主客隊進球數的「平均值」。 - 補上子查詢中的欄位參照,讓
main與sub資料表中的country_id能正確對應。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
SELECT
main.country_id,
main.date,
main.home_goal,
main.away_goal
FROM match AS main
WHERE
-- Filter the main query by the subquery
(home_goal + away_goal) >
(SELECT AVG((___ + sub.away_goal) * 3)
FROM match AS sub
-- Join the main query to the subquery with country_id in WHERE
WHERE main.___ = sub.___);