Mysql里面select、from、where、group by、having、order by的执行顺序

1、执行from和where得到第一个结果集

2、对第一个结果集执行group by分组操作,得到第二个结果集

3、对第二个结果集进行select操作,得到第三个结果集

4、对第三个结果集进行having操作,得到第四个结果集

5、对第四个结果集进行order by操作,得到最终结果

having和where的区别:

(1):having必须在执行了group by操作之后才能运行

(2):where的执行顺序在group by之前,也就必然在having之前。

(3):having后面可以加上聚合函数,而where后面不能加聚和函数如count(),sum(),avg(),max(),min()等函数。

举例:按由高到低的顺序显示个人平均分在70分以上的学生姓名和平均分,为了尽可能地提高平均分,在计算平均分前不包括分数在60分以下的成绩

select name,ave(score) from scoretable where score >= 60 group by name having ave(score) > 70 order by ave(score) desc;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值