聚合函数与order by联系

常用的聚合函数有count(),sum(),avg(),max(),min()

在使用SQL的关键字时,要注意其执行的顺序,一般的执行顺序如下:

1.在查找数据时,要先确定在哪张表中查找,即先执行from;

2.再过滤符合条件的数据,即执行where;

3.执行select将查找结果加入到结果集中;

4.最后执行 order by 对结果进行排列

现有一张表如下:

当我们要求倒数三名英语成绩的总和时,我们可以使用sum()与order by

可能有些出如下代码:

select sum(english) from exam order by english asc limit 3;

但是,这条语句是错误的,因为在执行SQL时,select先于order by执行,就导致sum(english)求的是全体同学的英语成绩总和,结果如下:

正确做法是先使用order by将倒数三名的英语成绩搜索出来,再将该搜索结果作为一张新表来计算英语成绩的总和,代码如下:

select sum(english) from 
(select english from exam order by english asc limit 3) as exam2;

结果如下:

 

要注意的是,由于第二个select返回的是一个新表,我们要对这个新表重名命名才能使用,否则会报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值