在mySQL中为用户获得前20个结果

时间:2011-04-05 01:27:11

标签: mysql

如何获得:在他们获得的奖励总额方面排名前20位的大学? enter image description here 我试过了,它只给了我1条记录?

SELECT sum(amount), org
FROM iis
ORDER BY award
LIMIT 0, 20;

3 个答案:

答案 0 :(得分:1)

你的问题是你要求所有大学的总和。您需要使用GROUP BY子句指定每个大学都需要它:

SELECT SUM(amount), org
FROM iis
GROUP BY org
ORDER BY SUM(amount) DESC
LIMIT 0, 20;

答案 1 :(得分:0)

您要找的是ORDER BY award DESC GROUP BY

  

默认排序顺序为升序,   首先是最小的值。排序   反向(降序)顺序,添加   DESC关键字到列的名称   你按照

排序

http://dev.mysql.com/doc/refman/5.0/en/sorting-rows.html

http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html

答案 2 :(得分:0)

您需要进行分组,否则您只会获得一个结果,也希望按聚合列(给定组织的所有金额的总和)进行排序,因此您必须为其命名:

SELECT sum(amount) as total, org
FROM iis
GROUP BY org
ORDER BY total desc
LIMIT 0, 20;