2012-11-30 57 views
1

好吧,說我有兩欄,Person和Donation。例如,這些行如下:SQL組總結

+++++++++++++++ 
Fred | $1000 
Fred | $500 
Bob | $1000 
Bob | $7000 
Sally| $500 
Joe | $100 
+++++++++++++++ 

我怎麼能得到它顯示以下內容?

+++++++++++++++ 
Fred | $1500 
Bob | $8000 
Sally| $500 
Joe | $100 
+++++++++++++++ 

換句話說,我怎麼能把某個人下的所有捐款歸結在一起,然後總結出來呢?什麼是一個可以實現這個功能的示例查詢? (如果可能,一般情況下,不涉及在選擇/總結條款中單獨命名人員)

謝謝!

回答

6

當您使用帶聚合函數的GROUP BY子句(如SUM)時,將爲每個組計算聚合。

SELECT Name, SUM(Donation) FROM Donations GROUP BY Name 

如果你想獲得更具體的結果,像那些人捐贈總額超過$ 500,引入HAVING條款。這有點像一個WHERE的彙總結果:

SELECT Name, SUM(Donation) FROM Donations GROUP BY Name 
    HAVING SUM(Donation) > 500 

SQL小提琴:http://sqlfiddle.com/#!2/2de84/1/0

+0

謝謝!並感謝鏈接,它看起來像一個很好的工具。 – Nathan

2
select sum(a.donation),a.person from a_table as a group by a.person; 

a_table是你的表;

0

您可以使用此以下查詢:

SELECT Name "Name", SUM(Donation) "Donation" FROM Donations GROUP BY Name