用 CTE 條理化查詢
先前你已經在第 2 章,基於一段已完成的敘述,使用 common table expressions 修改過查詢。
這次我們延伸該練習,利用 CTE 來查看高得分比賽的細節。就像在 FROM 裡的子查詢一樣,你也可以在 CTE 的「內部」對資料表進行連接。
本練習屬於課程
SQL 資料操作
練習說明
- 宣告你的 CTE,建立含有所有比賽與其聯賽
name的清單。 - 從 CTE 中選取
league、date、home和away的進球數。 - 將主查詢「篩選」為總進球數「至少 10 球」的比賽。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
-- Set up your CTE
___ match_list ___ (
-- Select the league name, date, home, and away goals
SELECT
___ AS league,
___,
___,
m.away_goal,
(m.home_goal + m.away_goal) AS total_goals
FROM match AS m
LEFT JOIN league as l ON m.country_id = l.id)
-- Select the league, date, home, and away goals from the CTE
SELECT ___, date, ___, away_goal
FROM ___
-- Filter by total goals
WHERE total_goals ___;