mysql where和having区别


where筛选作用于group by 前 having 筛选作用于 group by 之后

看个例子:

select student_id,sum(student_grade) from student_table group by  student_id having sum(student_grade) >500

查询总分大于500分的学生的id和学科总分

这里用where不能筛选总分大于500的学生,他作用在group by 分组之前,此时sum(student_grade)数据库中根本不存在

所以having筛选,因为它作用在 group by 分组之后已经生成了sum(student_grade)


查询学科总分大于500分以及id大于12012的学生的id和总分可以用到where

select student_id,sum(student_grade) from student_table where student_id>12012 group by  student_id having sum(student_grade) >500

这样分组前where先筛选id>12012的学生,在进行分组,分组后having筛选掉学科总分大于500的学生

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值