1

さて、Person と Donation という 2 つの列があるとします。たとえば、これらを行として:

+++++++++++++++
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 に答える