1

好的,假设我有两列,Person 和 Donation。例如,将这些作为行:

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

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

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

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

谢谢!

4

3 回答 3

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

于 2012-11-30T03:11:27.153 回答
2
select sum(a.donation),a.person from a_table as a group by a.person;

a_table 是你的桌子;

于 2012-11-30T03:11:03.813 回答
0

您可以为此使用以下查询:

SELECT Name "Name", SUM(Donation) "Donation" FROM Donations GROUP BY Name
于 2012-11-30T06:25:03.973 回答