Mysql之分组查询,Group By,Group Having的用法

举报
i进击的攻城狮 发表于 2022/09/11 13:52:23 2022/09/11
【摘要】 一、group by 的用法group by ,在mysql中用来给字段分组,sql语句如下,这是一条用来统计男女数量的sql语句。这里我们要注意到,group by ,一定是和聚合函数配合使用的,而不能直接使用select *,当然,select * 他也不会报错,也会给你一个结果,但是这个结果往往不是我们想要的,如下。下面是原表的数据这里我们直接使用了group by对性别分组,但是只...

一、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就不行,会报错。
在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。