2011-04-05 59 views
0

如何获得:他们获得的总奖励数量排名前20的大学? enter image description here 我试过了,它只给我1个记录?在mySQL中获得用户排名前20的结果

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

表中有多少条记录? – Rasika 2011-04-05 01:32:12

+0

大约有1600条记录 – Jshee 2011-04-05 01:46:29

回答

1

您的问题排序的列名是你问为所有大学的总和。你需要使用一个GROUP BY子句指定您希望它每所大学:

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

4个回复后的荣誉 – Jshee 2011-04-05 01:49:13

+0

刚注意到我的ORDER BY子句不正确,所以我修正了它。 (帽子提示BrokenGlass) – 2011-04-05 02:02:45

0

你需要一个分组,否则,你只会得到一个结果,你也想通过聚合列(所有金额的总和订购对于一个给定的组织),所以你必须给它一个名称:

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