数据库中where与having区别~~~
1、where和having的執行級別不同
在查詢過程中聚合語句(sum,min,max,avg,count)要比having子句優先執行.而where子句在查詢過程中執行優先級別優先于聚合語句(sum,min,max,avg,count)。having就是來彌補where在分組數據判斷時的不足。因為where執行優先級別要快于聚合語句。
 
2、where和having的用途不同
having 和where 都是用來篩選用的?
 having 是篩選組 而where是篩選記錄
 
 他們有各自的區別
 
 1》當分組篩選的時候 用having
 
 2》其它情況用where
 -----------------------------------------------------
 用having就一定要和group by連用,
 用group by不一有having (它只是一個篩選條件用的)
 -------------------------------------------------------
 例子
 表結構
 部門編號 姓名 工資
 1 aa 2000
 2 bb 1200
 1 cc 2100
 2 dd 1800
 1 ee 2100
 3 ff 8000
 2 gg 2200
 3 hh 4500
 
 查詢有多個員工的工資不低于2000的部門編號
 (就是說如果一個部門的員工大于2000的人數有兩個或兩個以上就查詢出來)
 
 select 部門編號,count(*) from 員工信息表
 where 工資>=2000
 group by 部門編號
 having count(*)>1
 
 where 針對每一條記錄篩選
 而 having 對同一個部門的分組
 count(*)>1 計算多于兩個的部門
 
 查詢結果為
 
 1 3
 3 2
 
 
總結
以上是生活随笔為你收集整理的数据库中where与having区别~~~的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: ORA-08103: object no
 - 下一篇: python 编程效率_如何有效提升数据