having子句的用法

    发现自己基础太差了,真的得要找时间学习了。

    昨天突然问了自己一个问题,sql语句中having是怎么用的,和where有什么区别,我自己问题自己答不上来。。。

    确实,没有很系统的学习过sql,但是我这些我也看过,只不过没有重视,外加工作上用的少,全都忘记啦。。。

   网上找寻了一下答案,在此记录一下。


having子句只用在分组查询(group by)条件下,用作分组查询结果的条件过滤,举个例子:

select sum(id) from tb_right group by id having sum(id) > 5;

这里把having换成where么?答案是不行的,会直接报错。

网上查询,是因为where子句在聚合函数sum之前运行,而having则是在聚合函数之后运行,因此不难理解为什么会报错了。

where一般用在group by之前即可,比如:

select sum(id) from tb_right where id > 5 group by id;

当然,后面可以继续跟上having子句。

所以where和having还是有很大差别的。

其实主要是因为自己对having不理解,所以会有此疑问,在此记录一下。



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值