如何獲得:他們獲得的總獎勵數量排名前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