数据库之Group by的使用

本文介绍如何使用SQL中的Groupby子句进行数据分组,并结合Having子句筛选符合条件的分组。通过实例展示了查询各部门工资总和及平均工资大于7000的部门最高工资的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Group by根据一个或多个列对结果集进行分组,例如聚合函数 (比如 SUM) 常常需要添加 Group by语句用于分组。
注:本文使用的是MySQL数据库

1、先看个例子
例如这里有张员工表(person):

这里写图片描述

通过执行下面的语句查找各个部门工资的总和:
select dept,sum(salary) from person group by dept;

这里写图片描述

小结:
(1)Group by语法可以根据给定数据列的每个成员对查询结果进行分组,这里的分组就是将一个“数据集合”划分成若干个“小块”,然后对这些“小块”进行数据处理。最终得到按一个分组汇总的结果表。

(2)SELECT子句后面的字段一般是聚合函数或者是Group by 后面的。

(3)Group by 一般和sum、max、avg等聚合函数一起使用。

2、再看个Group by子句和HAVING子句联合使用的例子

例如:我们查找平均工资大于7000的部门的最高工资:
执行SQL:
select dept,max(salary)
from person
group by dept
having avg(salary)>7000;

这里写图片描述

小结:
一般我们在Group by子句后面增加一个HAVING子句,来获得满足条件的分组的返回结果。HAVING可对限定条件进行分组, HAVING子句后可以通过一个或多个用AND和OR作为连接条件。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值