2014-09-04 58 views
-1

因此,我在表格中列出了捐款項目,每個用戶都有自己的唯一標識符和捐贈值。現在我需要做的是顯示前3名捐助者,從捐贈最多的捐贈者開始。問題是我該如何去總結所有相同標識符的捐款,然後對它們進行排序和顯示?PHP MySQL所有用戶捐款的總和值

它看起來像這樣:

NAME ID AMOUNT 
Bob 0001 5 
Don 0002 2 
Carl 0003 10 
Bob 0001 3 
Carl 0003 8 

我只知道如何總結整個捐贈金額,而不是總爲每個用戶。

謝謝你的幫忙!

+2

查找到['GROUP BY'(https://dev.mysql.com/doc/refman/5.6/en/group-by-functions.html) – 2014-09-04 19:03:03

+0

使用MySQL GROUP BY的http:// www.w3schools.com/sql/sql_groupby.asp – 2014-09-04 19:03:13

+0

'SELECT SUM(金額)FROM表GROUP BY名稱' – sjagr 2014-09-04 19:03:54

回答

2
SELECT 
Name, id, sum(Amount) as TotalDonation 
FROM t1 
GROUP BY id 
ORDER BY TotalDonation DESC 
LIMIT 0,3 
+0

這是正確的答案,它排序正確,謝謝。 – 2014-09-04 19:23:49

0
SELECT 
Name 
,id 
,sum(Amount) as TotalDonation 
FROM /*Your Table*/ 
GROUP BY name, id 

這應該工作,只需使用您的表名。

SELECT 
Name 
,id 
,sum(Amount) as TotalDonation 
FROM /*Your Table*/ 
GROUP BY name, id 
ORDER BY TotalDonation desc 
LIMIT 3 

如果你想顯示最高捐助者。

+0

這不會顯示前3名捐贈者... – 2014-09-04 19:09:16

1

使用GROUP BY

SELECT id, name, SUM(amount) as totalAmount 
FROM donations 
GROUP BY id, name 
ORDER BY totalAmount DESC 
LIMIT 3 

SQLFiddle

+1

謝謝,作品完美無瑕。 – 2014-09-04 19:19:03

+0

不,不排序。 – 2014-09-04 19:24:21

+0

你能解釋一下「不排序」嗎? – 2014-09-04 19:26:12