正在準備工作環境...
CTE 共用表達式
子查詢很強,但塞在 WHERE 或 FROM 裡面時,SQL 會變得很難讀。CTE(Common Table Expression)就是給子查詢取名字,讓複雜的查詢像寫文章一樣有條理。
- CTE =
WITH 名字 AS (查詢) - 就像先在便利貼上算好中間結果,再用它寫最後的報表
- 可以定義多個 CTE,一步一步來
基本語法
多個 CTE
先算每月營收,再算月增長:
AI 協作:學了這個,跟 AI 怎麼配合?
CTE 是讓 AI 寫出「人類看得懂的 SQL」的最佳武器——你該主動要求 AI 用 CTE。
你的人類優勢:
- 你能替每個 CTE 取有意義的名字(monthly_sales、vip_customers),讓邏輯一目了然
- 你能要求 AI 用 CTE 重構難讀的巢狀子查詢
可以這樣跟 AI 說:
這段子查詢太難讀了,請用 CTE(WITH ... AS)重寫,每一段加上中文註解。
練習題
互動示範
DEMO 1可以修改程式碼試玩
DEMO 2可以修改程式碼試玩
挑戰任務
Task 1
用 CTE 算出每個客戶的總消費金額,顯示客戶名稱和總金額,按金額由高到低
Task 2
用 CTE 找出平均訂單金額高於全體平均的客戶(顯示 customer_id 和 avg_amount)
Task 3
用 CTE 統計每個商品類別的商品數量和平均價格(顯示 category、product_count、avg_price)
← BackNext Lesson →