程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql having和group by 語句用法

mysql having和group by 語句用法

編輯:MySQL綜合教程

文章利用兩個簡單的實例對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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved