group by 分组的使用方法
一、语法格式
格式:group by 字段
注:
根据查询结果,选择字段进行分组,一般会和聚合函数一块使用,用于统计和计算分组数据;
后面可跟having来进行二次筛选,不能跟where,where是在group by之前使用的;
如果选择分组的字段有多个值,只会选择第一个;
使用group by 时,select后面跟聚合函数和进行分组的字段,其他字段没有意义;
二、场景应用
数据表
场景一、根据一个字段shop_type进行分组
注:会发现好几个门店类型都是1,但是只查询出了门店1,这就是有多个值的话只选择第一个;
场景二、根据两个字段org_id,shop_type进行分组
俩字段分组的原理:
注:只有第一个字段有相同值,才会更具第二个字段进行分组
场景三、与聚合函数配合使用
count(): 求查询结果的个数,括号中可写字段、*,表示:org_id为1的数量有12个
max(): 求字段的最大值
min(): 求字段的最小值
sum(): 求字段的和
avg(): 求字段的平均值
场景四、group_concat()和with rollup
group_concat()是把分组后,每个组里面的值都显示出来
with rollup 是在统计字段的总和
场景五、与having配合使用
having是对分组后的数据进行二次筛选的,除了和where操作一样外,还可以配合聚合函数使用;
查询org_id大于10的数据,并根据org_id进行分组,对分组后的数据进行筛选,筛选出shop_type和大于20的数据