MySql - GROUP BY 和 HAVING关键字

Posted jonmingrev

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySql - GROUP BY 和 HAVING关键字相关的知识,希望对你有一定的参考价值。

本文主要针对GROUP BY 和 HAVING两个关键字进行分析

使用测试表如下:

   技术分享图片

测试前,只知道GROUP BY 这个关键字的作用是根据一个字段进行分组,去重。HAVING对分组设置条件。

具体分组规则,设置条件不清楚。

 

测试开始

首先

单独使用GROUP BY对 kecheng 字段进行分组:

SELECT * from a GROUP BY kecheng

执行sql,结果如下:

  技术分享图片

分析:

  根据 kecheng 字段分组,并去重了,去重规则为  kecheng  的第一条数据。

 

然后

加上HAVING,对分组进行设置条件:

  SELECT * from a GROUP BY kecheng HAVING fenshu > 80

执行sql,结果如下:

  技术分享图片

分析:

  本次结果相对于上次,少了一条数据

  张三   数学   75

  可以看出 HAVING 条件,是在 GROUP BY 分组后进行的筛选。

 

 

总结:

  GROUP BY,对一个字段进行去重(取第一条),分组, 

   HAVING  配合 GROUP BY 使用,对分组后的数据进行限制,可以使用聚合函数。

  

注:本贴具体测试情况没有贴出,只是写出了测试后的数据结果。

参考:https://blog.csdn.net/quinnnorris/article/details/71056445

https://www.cnblogs.com/lao-tang/p/6398577.html

以上是关于MySql - GROUP BY 和 HAVING关键字的主要内容,如果未能解决你的问题,请参考以下文章

Mysql中Group By使用Having语句配合查询

MySQL进阶5--分组排序和分组查询 group by(having) /order by

mysql group by having 子句

9mysql分组查询-----group by 和 having

9mysql分组查询-----group by 和 having

mysql group by 分组及having 过滤分组