Mysql中HAVING的相關使用方法


having字句可以讓我們篩選分組之后的各種數據,where字句在聚合前先篩選記錄,也就是說作用在group by和having字句前。

而having子句在聚合后對組記錄進行篩選。我的理解就是真實表中沒有此數據,這些數據是通過一些函數產生的。

 

 

一、顯示每個地區的總人口數和總面積.
SELECT region, SUM(population), SUM(area) FROM bbc GROUP BY region

先以region把返回記錄分成多個組,這就是GROUP BY的字面含義。分完組后,然后用聚合函數對每組中
的不同字段(一或多條記錄)作運算。

 

二、 顯示每個地區的總人口數和總面積.僅顯示那些面積超過1000000的地區。

SELECT region, SUM(population), SUM(area)
FROM bbc
GROUP BY region
HAVING SUM(area)>1000000

在這里,我們不能用where來篩選超過1000000的地區,因為表中不存在這樣一條記錄。
相反,having子句可以讓我們篩選分組后的各組數據

 

三、 having單獨使用,與where類似

eg: 查詢單筆訂單充值金額大於1000的

SELECT regagent,amount FROM `cy_pay_ok`  having amount>1000 ;

SELECT regagent,amount FROM `cy_pay_ok`  where amount>1000 ;

兩個查詢結果一樣

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM