数据库之Group by的使用

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

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

数据库之Group by的使用

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

数据库之Group by的使用

小结:
(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的使用

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