初考-統計資料處理大意113 年第 40 題單選題
假設有一個 SQL 查詢包含下列四個子句,在查詢處理(query processing )過程中何者是最晚才執行的?
AFROM 子句
BGROUP BY 子句
CORDER BY 子句正確答案
DWHERE 子句
C正確答案
SQL 執行順序:FROM→WHERE→GROUP BY→HAVING→SELECT→ORDER BY,ORDER BY 永遠最後排序。
為什麼答案是 C
ORDER BY 是整個查詢最後才執行的子句,對最終結果集進行排序,因此所有資料都處理完才輪到它。
載入中…
完整詳解
Pro · 無限重點 SQL 執行順序:FROM→WHERE→GROUP BY→HAVING→SELECT→ORDER BY,ORDER BY 永遠最後排序。
記口訣「從哪來→篩條件→分組→挑欄位→排順序」,ORDER BY 負責最後排序,必最晚。
逐選項分析
A✕
FROM 是最先執行的子句,負責指定資料來源(表格),後續所有運算都建立在 FROM 決定的資料集上。
B✕ 陷阱
GROUP BY 在 WHERE 篩選後才分組,但仍在 SELECT 與 ORDER BY 之前,屬於中段執行,不是最後。
C✓ 正確
ORDER BY 是整個查詢最後才執行的子句,對最終結果集進行排序,因此所有資料都處理完才輪到它。
D✕
WHERE 緊接在 FROM 之後執行,負責行級篩選,在 GROUP BY 之前,屬於前段執行。
SQL 邏輯執行順序
| 順序 | 子句 | 功能 | 備註 |
|---|
| 1 | FROM / JOIN | 決定資料來源 | 最先 |
| 2 | WHERE | 列篩選條件 | 分組前篩選 |
| 3 | GROUP BY | 資料分組 | 聚合前 |
| 4 | HAVING | 組別篩選 | 分組後篩選 |
| 5 | SELECT | 挑選欄位 | 投影 |
| 6 | ORDER BY | 結果排序 | 最晚執行 |
很多考生會以為 SQL 按『書寫順序』執行(SELECT 寫在最前面就先跑),其實是按『邏輯順序』執行。ORDER BY 雖寫在尾巴,也是真的最後才跑,用來排序已完成的結果集。