標準SQL 解析順序
(1).FROM子句,
組裝來自不同數據源的數據
(2).WHERE子句,
基於指定的條件對記錄進行篩選
(3).GROUPBY 子句,
將數據劃分爲多個分組
(4).使用聚合函數進行計算
(5).使用
HAVING 子句篩選分組
(6).計算所有的表達式
(7).使用
ORDERBY 對結果集進行排序
舉例說明
在學生成績表中 (暫記爲tb_Grade), 把 "考生姓名"內容不爲空的記錄按照 "考生姓名" 分組, 並且篩選分組結果, 選出 "總成績" 大於 600 分的。
標準順序的 SQL
語句爲:
select 考生姓名, max(總成績) as max總成績
fromtb_Grade
where 考生姓名 is not null
group by考生姓名
havingmax(總成績) >600
order bymax總成績
上面示例中 SQL
語句的執行順序如下:
(1). 首先執行
FROM 子句,
從tb_Grade
表組裝數據源的數據
(2). 執行
WHERE 子句,
篩選tb_Grade
表中所有數據不爲 NULL 的數據
(3). 執行
GROUPBY 子句,
把tb_Grade
表按 "學生姓名"
列進行分組
(4). 計算
max() 聚集函數,
按 "總成績"
求出總成績中最大的一些數值
(5). 執行
HAVING 子句,
篩選課程的總成績大於 600
分的.
(7). 執行
ORDERBY 子句,
把最後的結果按"Max
成績" 進行排序