如何获得:他们获得的总奖励数量排名前20的大学? 我试过了,它只给我1个记录?在mySQL中获得用户排名前20的结果
SELECT sum(amount), org
FROM iis
ORDER BY award
LIMIT 0, 20;
如何获得:他们获得的总奖励数量排名前20的大学? 我试过了,它只给我1个记录?在mySQL中获得用户排名前20的结果
SELECT sum(amount), org
FROM iis
ORDER BY award
LIMIT 0, 20;
您的问题排序的列名是你问为所有大学的总和。你需要使用一个GROUP BY
子句指定您希望它每所大学:
SELECT SUM(amount), org
FROM iis
GROUP BY org
ORDER BY SUM(amount) DESC
LIMIT 0, 20;
4个回复后的荣誉 – Jshee 2011-04-05 01:49:13
刚注意到我的ORDER BY子句不正确,所以我修正了它。 (帽子提示BrokenGlass) – 2011-04-05 02:02:45
你在找什么是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
这仍然只给(1)结果... – Jshee 2011-04-05 01:32:16
你需要一个分组,否则,你只会得到一个结果,你也想通过聚合列(所有金额的总和订购对于一个给定的组织),所以你必须给它一个名称:
SELECT sum(amount) as total, org
FROM iis
GROUP BY org
ORDER BY total desc
LIMIT 0, 20;
表中有多少条记录? – Rasika 2011-04-05 01:32:12
大约有1600条记录 – Jshee 2011-04-05 01:46:29