2012-04-07 16 views
1

私は1つにマージする必要がある複数のテーブルがあります。フィルタpostgresqlのクエリ結果

SELECT name, SUM(money) AS MONEY FROM transactions 
JOIN results ON transactions.id = results.id 
JOIN more ON results.per_id = more.per_id 
GROUP BY name 

出力は、人の名前(第1列)と人のお金(第2列)です。

name | money 
aaron 1220 
mike 800 
john 200 
kate 600 

は、今私は、私は「入れてみましたその理由のお金> 500 GROUPのための「和(金)> 500」

を持つ人々のために結果を表示するために、すなわち、金額によって結果をフィルタリングしてみてくださいBY name "しかし、出力が間違っていた(aaron 1000、mike 610など)。

どのようにクエリの最後/最後のの結果をフィルタに書きますか?

答えて

4
Group By Name 
having sum(money) > 500 

EDIT:あなたは「最後か最後の結果」で何をやっていますか?

+0

私は「> 500お金をHAVING名、GROUP BY」を追加しようとしましたが、エラーを持っています。問題は、私がSUM()を使って解決策がとても近かったとは思わなかったことです。 Raphaëlありがとう – Alex

4

あなたが500より大きいですSUM(money)を持ちたいなら、あなたはこのように行うことができます。

SELECT name, SUM(money) AS MONEY FROM transactions 
JOIN results ON transactions.id = results.id 
JOIN more ON results.per_id = more.per_id 
GROUP BY name 
HAVING SUM(money)>500 
関連する問題