一、group by 的用法
group by ,在mysql中用来给字段分组,sql语句如下,这是一条用来统计男女数量的sql语句。
这里我们要注意到,group by ,一定是和聚合函数配合使用的,而不能直接使用select *,当然,select * 他也不会报错,也会给你一个结果,但是这个结果往往不是我们想要的,如下。
下面是原表的数据
这里我们直接使用了group by对性别分组,但是只查出了两条数据,因为gender只有两个值。
group by 时,相对于把group字段相同的数据,共用一个值,你可以如下理解。
之后使用聚合函数,就是对每个分组值的数据分别聚合。
二、 having的用法
having和where有类似的地方,都是对数据进行筛选。
where是筛选的对象是,from之后的数据,而where不能作用于聚合函数。
having是筛选group by后面的数据,having可以对普通字段进行筛选,也可以对聚合函数或者聚合函数的别名进行筛选。如下,having对聚合函数的结果进行筛选,判断某个性别数量是否大于3的结果,这里使用where就不行,会报错。
来源地址:https://blog.csdn.net/qq_45171957/article/details/126769961