萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysql having和group by 語句用法

mysql having和group by 語句用法

文章利用兩個簡單的實例對group by之後的分組加限制條件和查詢數據表中某字段重復出現的次數,並按照次數排序講述了havaing和group by 語句用法

利用Mysql中的 的聚合函數 count(*) 可以實現這個功能,例如需要查詢data表中name出現次數最多的記錄,可以先按照group by name分組,用count算出分組裡的條數,再按照count排序:

 代碼如下 復制代碼

select name,count(*) from data group by name order by count(*) DESC limit 1

不加limit限制將返回按照name重復次數排列的數據

 

在使用聚合函數之前,我們可以通過where對查詢加限制條件,那麼如果在group by之後我們要對分組裡面的數據再加限制條件怎麼辦呢?答案是having。

HAVING子句可以讓我們篩選成組後的各組數據.
WHERE子句在聚合前先篩選記錄.也就是說作用在GROUP BY 子句和HAVING子句前.
而 HAVING子句在聚合後對組記錄進行篩選。

having子句出現的數據必須在group by 之後,order by 之後

例如在上一篇中對name按照出現次數排序之後,我們還想只查出名字裡面含有lin的數據,可以這樣寫:

 代碼如下 復制代碼

select name ,count(*)  from data group by name having name like '%lin%' order by couny(*) DESC

copyright © 萬盛學電腦網 all rights reserved