摘要:標準的 SQL 的解析順序為:(1).FROM 子句, 組裝來自不同數(shù)據(jù)源的數(shù)據(jù)(2).WHERE 子句, 基于指定的條件對記錄進行篩選(3).GROUP BY 子句, 將數(shù)據(jù)劃分為多個分組(4).使用聚合函數(shù)進行計算(5).使用 HAVING 子句篩選分組(6).計算所有的表達式(7).使用 ORDER BY 對結果集進行排序SQL 語句的語法順序是:● SELECT[DISTINCT]● FR
標準的 SQL 的解析順序為:
(1).FROM 子句, 組裝來自不同數(shù)據(jù)源的數(shù)據(jù)
(2).WHERE 子句, 基于指定的條件對記錄進行篩選
(3).GROUP BY 子句, 將數(shù)據(jù)劃分為多個分組
(4).使用聚合函數(shù)進行計算
(5).使用 HAVING 子句篩選分組
(6).計算所有的表達式
(7).使用 ORDER BY 對結果集進行排序
SQL 語句的語法順序是:
● SELECT[DISTINCT]
● FROM
● WHERE
● GROUP BY
● HAVING
● UNION
● ORDER BY
舉例說明: 在學生成績表中 (暫記為 tb_Grade), 把 "考生姓名"內容不為空的記錄按照 "考生姓名" 分組, 并且篩選分組結果, 選出 "總成績" 大于 600 分的.
標準順序的 SQL 語句為:
select 考生姓名, max(總成績) as max總成績
from tb_Grade
where 考生姓名 is not null
group by 考生姓名
having max(總成績) > 600
order by max總成績
在上面的示例中 SQL 語句的執(zhí)行順序如下:
(1). 首先執(zhí)行 FROM 子句, 從 tb_Grade 表組裝數(shù)據(jù)源的數(shù)據(jù)
(2). 執(zhí)行 WHERE 子句, 篩選 tb_Grade 表中所有數(shù)據(jù)不為 NULL 的數(shù)據(jù)
(3). 執(zhí)行 GROUP BY 子句, 把 tb_Grade 表按 "學生姓名" 列進行分組
(4). 計算 max() 聚集函數(shù), 按 "總成績" 求出總成績中最大的一些數(shù)值
(5). 執(zhí)行 HAVING 子句, 篩選課程的總成績大于 600 分的.
(7). 執(zhí)行 ORDER BY 子句, 把最后的結果按 "Max 成績" 進行排序.