MySQL 分组查询

àì夳堔傛蜴生んèń 2023-06-20 09:25 89阅读 0赞

分组查询

按照某个或多个数据进行分组

分组查询语法:group by 分组字段

[group by 字段] [having (条件表达式)]

having:过滤分组

以下表为例

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5NTg4MDAz_size_16_color_FFFFFF_t_70

示例1:按照性别分组。分别查询男、女同学的平均分

20191209225818514.png

示例2:按照性别分组。分别查询男、女同学的平均分,人数

20191209225853525.png

示例3:按照性别分组。 分别查询男、女同学的平均分,人数要求:分数低于70分的人,不参与分组

20191209225922851.png

示例4:按照性别分组。 分别查询男、女同学的平均分,人数要求:分数低于70分的人,不参与分组,分组之后。人数要大于2个人

20191209230013626.png

示例5:多字段分组

分组从左往右,先按照第一个字段进行,然后对第一个字段相同的值按照第二个字段分组,以此类推。

select price,count(*) as total from fruits group by price,id;

补充with rollup 关键字

使用with rollup 后,会在所有分组记录后新增一条记录,该记录计算查询出的所有纪律的总和,即统计记录数量。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5NTg4MDAz_size_16_color_FFFFFF_t_70 1


注意:where 和 having 的区别

  • where在分组之前进行限定,having在分组之后进行限定。
  • where后不可以跟聚合函数,having可以进行聚合函数的判断。
  • where先执行条件,再执行查询
  • having 先执行查询,再执行条件

20201229140301506.png

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5NTg4MDAz_size_16_color_FFFFFF_t_70 2

发表评论

表情:
评论列表 (有 0 条评论,89人围观)

还没有评论,来说两句吧...

相关阅读

    相关 MySQL 分组查询

    MySQL SELECT 语句,允许使用 GROUP BY 子句,将结果集中的数据行根据选择列的值进行逻辑分组,以便能汇总表内容的子集,实现对每个组而不是对整个结果集进行整合。