group by 分组字段 having 筛选分组后结果集
需要配合select使用
1.将表中多条数据合并计算
2.将表中多条数据分组后合并计算
from join on
where
group by ⭐️
having ⭐️
select distinct
order by
limit
分组:group by 分组字段,分组字段,分组字段
定义:分组字段
(1)按照表内某字段进行分组,将该字段内数据一致的对象看作一组
(2)将每组数据分别【合并处理,对象的值】后显示
(3)结果:一组一个值
多个分组字段:相互叠加唯一后分组
分组后筛选:having 筛选条件 and 筛选条件
(1)筛选条件:【select:合并处理,对象的值】>100;
//例如筛选条件为:select计算平均数后得出的结果具体值大于某个数
select svg (字段名) //输出 分组后每组的字段平均值大于20的
group by 分组字段
having svg(字段名)>20;
多个having条件时,用and 连接
筛选 | 区别1 | 区别2 | 相同1 |
---|---|---|---|
where | 筛选内容为表 | 不能识别组内结果(执行顺序原因) | 筛选(字符,数字,逻辑型) |
having | 筛选内容为【分组后select值】 | 能识别组内结果(执行顺序原因) | 筛选(字符,数字,逻辑型) |
合并处理,对象的值:分组函数
(1)将所有的对象统一核算得出一个值
(2)将所有的对象分组,统一核算,得出一个组一个值
//select分组函数中接其他内容没意义
select 函数 分组字段
函数名 | 代码 |
---|---|
求和 | sun(字段名) |
求平均数 | svg(字段名) |
求最大值 | max(字段名) |
求最小值 | min(字段名) |
计算【非空】字段的个数 | count(字段名) |
计算【不重复】字段的个数 | count(distincy 字段) |