常用的聚合函数有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返回的是一个新表,我们要对这个新表重名命名才能使用,否则会报错。