跳到主要內容
Cypher's Practical Coding
正在準備工作環境...

子查詢(Subquery)

SQL 101 教你從一張表撈資料。但實際工作中,老闆問的是「誰的訂單金額高於平均?」這種需要先算出一個值,再拿來比較的問題。這就是子查詢。

  • 子查詢 = 把一段 SELECT 塞在另一段 SELECT 裡面
  • 先執行內層,拿到結果,再給外層用
  • 就像 Excel 裡的「先算平均,再篩選大於平均的」

WHERE 裡的子查詢

找出價格高於平均的商品:

找出下過訂單的客戶:

FROM 裡的子查詢

先算每個客戶的訂單數,再找出大戶:

AI 協作:學了這個,跟 AI 怎麼配合?

AI 很會寫子查詢,但巢狀太深就連 AI 自己也容易搞混。你要能看懂它的邏輯。

你的人類優勢:

  • 你能判斷子查詢的結果是不是你要的中間結果
  • 你能要求 AI「把子查詢拆開,一步一步來」,降低出錯機率

可以這樣跟 AI 說:

幫我找出「消費金額高於平均的客戶」,先告訴我平均金額是多少,再寫完整查詢。

練習題

互動示範

DEMO 1可以修改程式碼試玩
DEMO 2可以修改程式碼試玩
DEMO 3可以修改程式碼試玩

挑戰任務

Task 1

找出價格高於所有商品平均價格的商品(顯示 name 和 price)

Task 2

找出從未下過訂單的客戶(用 NOT IN 子查詢,顯示 name)

Task 3

找出訂單金額最高的那筆訂單(顯示 id 和 total_amount)

Next Lesson →