mysql中的group by语句

本文详细介绍了MySQL中GROUP BY语句的使用,包括多个字段分组、HAVING子句、HAVING与聚合函数结合、ALL关键字的应用,以及CUBE和ROLLUP等高级用法。同时,还强调了在使用字段别名时需要注意的执行顺序问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考资料:1、SQL语句:Group By总结

一、group by 后面有多个字段

如果group by后面有多个字段,其实和 order by 后的多个字段是差不多的。例如:group by a , b ;将字段a,b共有的多条数据合并,不同的数据则不合并。具体例子如下:

在这里插入图片描述

二、group by 后面的having

group by 后面的having是对分组后的字段进行再次过滤筛查,一般是用聚合函数。如下例子:(对字段a 分组,并且在分组前的数量要大于1)

select a, 
    count(1),
    max(b)
from f 
where a like 'X%'
group by a 
    having count(a) > 1

或者也可以对非分组字段进行聚合函数的筛选

三、HAVING子句可包含一个或多个用AND和OR连接的谓词

四、用HAVING句后,在select后 用count(*)的不同

在这里插入图片描述

SELECT COUNT(*),Ssex FROM Student GROUP BY Ssex;

在这里插入图片描述

五、group by 后的关键字ALL

group by 后的关键字All,如果通过where 条件过滤后,才进行group by 。那么关键字All就是把不满足的条件的数据也全都展示出来。

六、group by 后的关键字CUBE和ROLLUP

首先需要说明的是Group By All 语句是不能和CUBE 和 ROLLUP 关键字一起使用的。

七、使用字段别名的注意事项

由于mysql的执行顺序如下:
from
on
join
where
group by
select
having
order by
limit

由上可知:select后的字段别名,只能在select执行之后的,才能使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值