Home  >  Article  >  Database  >  mysql having和group by 语句用法

mysql having和group by 语句用法

WBOY
WBOYOriginal
2016-06-07 17:51:351813browse

文章利用两个简单的实例对group by之后的分组加限制条件和查询数据表中某字段重复出现的次数,并按照次数排序讲述了havaing和group by 语句用法

利用Mysql中的 的聚合函数 count(*) 可以实现这个功能,例如需要查询data表中name出现次数最多的记录,可以先按照group by name分组,用count算出分组里的条数,再按照count排序:

 代码如下 复制代码

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn