oracle, group by, having, where
選擇列表中如果包含有列、表達式時,這個列、表達式必須包含在Group By子句中。另外,如果采用了表達式的話,則數據庫管理員即使在選擇列表中采用了別名,但是在Group By子句中仍然必須采用表達式的完整表達方式,而不能夠采用別名。
同時含有Group By(分組語句)、Having(分組語句下的條件函數)、Order By(排序語句)三個共存的話,則需要注意他們有一定的書寫順序。通常情況下Order By排序語句必須放置在最后。
另外需要注意的是,采用Group語句會自動對紀錄進行排序。
如果數據庫管理員對于這個排序結果不滿意的話,就需要通過Order By子句再來對顯示結果進行排序。不過這里需要注意的是,本身分組等子句就需要對紀錄進行排序并進行一定的業務邏輯處理,此時會耗費比較多的數據庫資源。
如果想把某個字段當作第一順序排序的話,則只需要把這個字段放置在分組語句中的第一個參數即可。
在使用group?by?時,有一個規則需要遵守,即出現在select列表中的字段,如果沒有在組函數中,那么必須出現在group?by?子句中。(select中的字段不可以單獨出現,必須出現在group語句中或者在組函數中。)
?
Group By子句與Where子句是不兼容的。
?
查詢語句的select?和group?by?,having?子句是聚組函數唯一出現的地方,在where?子句中不能使用聚組函數。
where?子句的作用是在對查詢結果進行分組前,將不符合where條件的行去掉,即在分組之前過濾數據,條件中不能包含聚組函數,使用where條件顯示特定的行。?
having?子句的作用是篩選滿足條件的組,即在分組之后過濾數據,條件中經常包含聚組函數,使用having?條件顯示特定的組,也可以使用多個分組標準進行分組。
轉載于:https://www.cnblogs.com/smile0120/p/3259007.html
總結
以上是生活随笔為你收集整理的oracle, group by, having, where的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 车强险多少钱啊?
 - 下一篇: 读书百遍其义自见是谁写的呢?