1.分组
分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。
2.分组的特点
1.)group by的含义:将查询结果按照1个或多个字段进行分组,字段值相同的为一组
2.)group by可用于单个字段分组,也可用于多个字段分组
3 分组的用法
select 字段名 from 数据表 group by 分组字段名
4 使用分组时相当于把某个字段按照某个要求叠在了一起,这时候使用普通的方法无法查看每个组的内容,需要group_concat(分组的字段名)来查询
select 分组字段名 group_concat(字段名) from 数据表 group by 分组字段名
5.当你需要某些需求的查询,需要为分组查询添加一个限制条件,这时候不能使用where进行条件筛选,应该使用having进行条件筛选
select gender,count(*) from students group by gender having count(*)>2;
6.当你需要对数据表的分组进行汇总的,可以使用 with rollup 方法(当不配合分组使用时默认对全数据表进行汇总)
select gender,count(*) from students group by gender with rollup;
总结:
- group by 关键字能根据1个或多个字段对数据进行分组
- group_concat函数作用就是将每个分组中的每个成员的指定个字段拼接在一行中显示
- 聚合函数在和 group by 结合使用时, 统计的对象是每个分组
- having 是对分组结果进行条件过滤
- with rollup在分组结果最后新增一行完成汇总显示。