如何获得:在他们获得的奖励总额方面排名前20位的大学? 我试过了,它只给了我1条记录?
SELECT sum(amount), org
FROM iis
ORDER BY award
LIMIT 0, 20;
答案 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;