where语句中为什么不能用聚合函数呢?

文章解释了SQL中where和聚合函数(count,max,min,avg,sum)的使用区别:where基于行过滤,先于groupby执行;而聚合函数针对列操作。where在使用聚合函数前进行的是对from后的结果集的过滤,且会再次分组,因此在某些情况下无效。
摘要由CSDN通过智能技术生成

首先 聚合函数(count,max,min,avg,sum)针对进行运算,

where针对于进行运算过滤,

sql语句执行顺序 from - where(分组前进行过滤) - group by -having(分组后进行过滤)-order by-having -limit -select;

所以可以得知

where进行过滤后得到结果集 然后才能通过聚合函数进行列得过滤,

综上有两点原因

1.如果where时 使用聚合函数的话 只是针对于from后的结果集,where还会再次分组过滤,所以是无用的

2.聚合函数针对于列,where针对于行

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值