1.概述
group by是开发中经常用到的SQL语句,从字面翻译来看就是根据某种来聚合/分组,实际应用中也是根据哪个字段或者哪些字段对查询到的数据进行分组统计,而group by通常和聚合函数还有having一起使用。
2.基础语法
SELECT 字段|聚合函数 FROM 表 [WHERE 条件] GROUP BY 列(分组字段名) [HAVING 分组后的过滤条件];
其中where和having区别:
1.执行时机不同:where是分组之前进行过滤,不满足where条件的不参与分组,having是分组之后进行过滤
2.判断条件不同:where不能对聚合函数进行判断,而having可以
常见的聚合函数有:
-SUM(列) 求和
-AVG(列) 求平均值
-MIN(列) 求最小值
-MAX(列) 求最大值
-COUNT(列|*) 求数量
3.例子
select gender,avg(age) from test1 group by gender;
select gender,count(gender) from test1 group by gender;
select gender,avg(age) from test1 group by gender having avg(age)>16;
语句1运行结果如下
语句2运行结果如下
语句3运行结果如下
4.group by的其他可用参数
1、group by rollup( )
2、group by cube( )
3、group by grouping sets ( )
5.补充:SQL语句的格式
SELECT 列 | 聚合函数 | * FROM 表 WHERE ... GROUP BY ... ORDER BY ... [ ASC | DESC] LIMIT n[, m]
注:[]内为可选字段,ORDER BY和LIMIT用法自行百度