1. 程式人生 > >where與having區別

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