mysql中groupby分组函数详解及查询总结groupby是什么函数
官⽅定义:
分组: 按照某⼀列或者某⼏列。把相同的数据,进⾏合并输出。
完整写法:
select … from … group by 列名,列名
注意:
1、聚合函数:分组之后进⾏计算;
2、通常 select后⾯的内容是被分组的列,以及聚合函数;
分组有⼀个特点:
⼀旦使⽤了分组函数,那么最终在显⽰的时候,只能显⽰被分组的列或者聚合函数。
group by 与 having 的⽤法
在sql语句中的where 后⾯不允许添加聚合函数,添加就会报错。
关于 having 的⽤法解释:
表⽰分组之后的条件,在having后⾯可以书写聚合函数。
having和group by ⼀起使⽤,having和where的⽤法⼀模⼀样,where怎么使⽤having就怎么使⽤,where不能使⽤的,having也可以使⽤,⽐如说where后⾯不可以使⽤聚合函数,但是在having后⾯是可以使⽤聚合函数的。
where 与 having 的区别
1、having 通常与group by 分组结合使⽤。 where 和分组⽆关。
2、having是从筛选出来的字段再筛选,⽽where是从数据表中的字段直接进⾏的筛选的。
3、where 后⾯的条件可以写在having 中,但是 having中的条件不⼀定能写在where中。
having 可以书写聚合函数 (聚合函数出现的位置: having 之后)
例如having中的 聚合函数(count,sum,avg,max,min),是不可以出现where条件中。
4、where 是在分组之前进⾏过滤的。having 是在分组之后进⾏过滤的。
查询总结:
Count(字段) 作⽤统计个数
Sum(字段) 作⽤求和运算
Avg(字段) 作⽤求平均值
Max(字段) 作⽤求最⼤值
Min(字段) 作⽤求最⼩值
Group by 作⽤分组查询
Having 作⽤关联条件与where⼀样只是⽀持聚合函数的使⽤
查询关键字的出现的顺序是固定的
select …要显⽰的内容.. from …表名.. where  条件…. group by …分组的列 …having …分组后的条件… order by …排序
select …5… from …1..  where …2.. group by ..3…having ..4… order by .6.
查询的执⾏顺序:
1)from : 表名
2)where:条件过滤
3)group by : 分组
4)having :分组之后进⾏过滤。
5)select :执⾏完毕之后,显⽰内容。
6)order by :根据查询的内容进⾏排序输出.
from 表名
where 条件:
逻辑运算符:and or not
⽐较运算符:> < >= <= <> = !=
在....之间:and
in():只要在in(值1,值2...)满⾜任意⼀个值就可以类似java switch
模糊匹配:like %任意个 _⼀个字符
is null/is not null
group by 列:对列进⾏分组。
having 条件:
逻辑运算符:and or not
⽐较运算符:< > <= >= <> =
在....之间:
in(set)
is null/is not null
模糊匹配:like % _
Having 后可以跟聚合函数不使⽤聚合函数⽤where
聚合函数(sum,avg,max,min,count)
Where跟的条件 having都可以⽽且 having还可以跟聚合函数 where不可以  having单独使⽤的时候的条件在查询中的字段必须包含order by desc(降序)/asc(升序,默认)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。