SQL组求和

时间:2012-11-30 03:09:05

标签: sql sum

好吧,说我有两个栏目,人和捐赠。例如,将这些作为行:

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

我怎样才能让它显示以下内容?

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

换句话说,我怎样才能将某人捐赠的所有捐款合并在一起,并总结一下?什么是一个可以实现此目的的示例查询? (如果可能的话,一般来说,这不涉及在select / sum子句中单独命名人员)

谢谢!

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

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

a_table是你的桌子;

答案 2 :(得分:0)

您可以使用以下查询:

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