Group by having组函数的where

本文探讨了在SQL中如何正确使用组函数如avg()、sum()等,并介绍了使用group by与having子句进行数据筛选的方法。文章指出,在使用组函数时,若需进一步筛选数据,则应采用having子句而非where子句。

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

我们在使用组函数(avg(),sum(),max(),min(),count())的时候有的地方需要对组函数进行筛选,我们能不能用where来操作呢?
答案是不能的 因为使用组函数如果有别的需求我们就必须写Group by having了
不然就会报错的
在这里插入图片描述

可以看到我在where使用组函数然后就报错了。
那不可以使用where来进行数据筛选的话我就试试用Group by having看看
在这里插入图片描述

这里是使用了group by having的,
如果我们使用了组函数还要对数据进行筛选就要用上group by having了 语法也不难
如上图在select语句查询的列没有用到组函数的都要放在group by 那 然后条件语句就要在having那段写
注意 没有用到组函数的列要放到group by那 否则会报错。
Group by 是可以单独写having的 它们是一起的。只要你查询的列都是用到组函数就不会报错
注:写group by的时候也不是一定要把having带着的,单独写group by是Oracle允许的

我们如果要写having的话也可以不一定要带上group by 这个是有一定要求的 本来是不允许的,但是按下面的写法就可以单独写having。这个是看个人需要,怎么理解就看个人的思维的了,但是编程的话万变不离其宗,主要核心思维没有错。 怎么去用自己的眼光自己的理解就是看人的

但要单独使用having的话就要注意一点 就是筛选的条件的依据 如下图 筛选的条件是max(salary)我的select那也出现了所以成立,如果筛选的条件不是在select出现的话就会报错的
在这里插入图片描述

这样就不会出现错误,因为max(salary)在select出现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值