SQL語法(三) 分組和篩選
前言
本章將學習sql分組及篩選。
範例
1.分組查詢
--關鍵字:group by 分組欄位名,分組欄位名....
--注意1:使用了分組後,在select語句中只允許出現分組欄位和多行函式。
--注意2:如果是多欄位分組,則先按照第一欄位分組,然後每個小組繼續按照第二個欄位繼續分組,以此類推。
--注意3:在where子句中不允許出現多行函式。
2.分組篩選
--關鍵字:having
--作用:針對分組進行分組後的資料篩選,允許使用多行函式。
--注意:having關鍵必須和分組結合使用。不允許單獨使用。
--where和having的比較:
--where子句不允許出現多行函式,having允許出現多行函式
--where子句和having都可以使用普通欄位直接進行篩選,但是where的效率高於having
--where執行順序: from--->where--->group by-->select-->order by
--having執行順序:from--->group by-->select--->having--->order by
--結論:在分組語句中,使用where進行欄位級別的篩選,使用having進行多行函式的篩選。
3.SQL查詢語句的結構
--select 子句 要查詢的資料(oracle函式,別名,連線符,去除重複,邏輯運算)
--from語句 決定要查詢的表(表名)
--where子句 篩選資料(篩選條件,關鍵字)
--group by子句 分組 (分組欄位)
--having子句 分組篩選 (多行函式篩選條件)
--order by子句 排序 (排序)
--from-->where--->group by-->select--->having--->order by