開始使用免費開始

用 CTE 條理化查詢

先前你已經在第 2 章,基於一段已完成的敘述,使用 common table expressions 修改過查詢。

這次我們延伸該練習,利用 CTE 來查看高得分比賽的細節。就像在 FROM 裡的子查詢一樣,你也可以在 CTE 的「內部」對資料表進行連接。

本練習屬於課程

SQL 資料操作

檢視課程

練習說明

  • 宣告你的 CTE,建立含有所有比賽與其聯賽 name 的清單。
  • 從 CTE 中選取 leaguedatehomeaway 的進球數。
  • 將主查詢「篩選」為總進球數「至少 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 ___;
編輯並執行程式碼