mysql中having的例子_实例详解Group by和Having子句

在介绍group by和having子句前,我们必需先讲讲sql语言中一种特殊的函数:聚合函数,例如SUM,COUNT,MAX,AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。

这里的SUM作用在所有返回记录的population字段上,结果就是该查询只返回一个结果,即所有国家的总人口数。

通过使用group by子句,可以让SUM和COUNT这些函数对属于一组的数据起作用。当你指定group by region时,属于同一个region(地区)的一组数据将只能返回一行值,也就是说,表中所有除region(地区)外的字段,只能通过SUM,COUNT等聚合函数运算后返回一个值。

having子句可以让我们筛选成组后的各组数据,where子句在聚合前先筛选记录.也就是说作用在group by子句和having子句前.

而having子句在聚合后对组记录进行筛选

在了解了相关概念之后,下面小编就给大家分享一下Groupby和Having子句的小例子,具体详情如下所示:

使用关系:

1.Having子句(是对分组之后的数据进行过滤,所以使用having时必须用groupby先分组)

Having中的组函数可以不是select中的组函数

利用having子句过滤分组的行

注意:having要先过滤掉不需要的记录,然后再进行分组操作,提高效率。having子句可以过滤组函数结果或是分组的信息,且写在groupby子句后

规则:

2.Groupby子句(利用groupby子句分组数据,当select语句中使用到组函数和字段一起连用时会用到groupby,否则会出现错误)

Groupby把select查询的结果集分成几个小组,这个groupby子句可以跟在where后面且在having前面。

Groupby子句也会触发排序操作,会按分组字段排序。

Select[组函数和分组的字段].....from表名groupby[字段1],[字段2],。。。。。。;

在经过上面的学习之后,让我们通过实例来操作一下。

表结构:

0183f9dde456426bd6a1cb6ecab00b31.png

要求:

查询有多个员工的工资不低于2000的部门编号(就是说如果一个部门的员工大于2000的人数有两个或两个以上就查询出来)

sql语句:

f9a6432e8b26cb94e9e39516d89580e7.png

说明:

where子句和having子句都是用来筛选条件用的,不同的是,where子句只能对分组前的属性进行删选,而having子句只能对分组后的属性进行筛选。

f4698227f6dfe9ae91885d72ddd951b3.png

小编结语:

更多精彩内容尽在课课家教育!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值