2012-04-07 152 views
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 

输出是人的名字(第一列)和人的钱(第二列)。

name | money 
aaron 1220 
mike 800 
john 200 
kate 600 

现在,我尝试用金额来筛选结果,即以示对人的结果与“总和(钱)> 500”

为此,我试图把“WHERE钱> 500 GROUP BY名”但是输出是错误的(亚伦1000,麦克风610,等等)。

你如何编写一个查询过滤最后/结束结果呢?

回答

4
Group By Name 
having sum(money) > 500 

编辑:什么叫 “最后/结束结果” meen?

+0

我已经尝试添加“GROUP BY名有钱> 500”,但得到了一个错误。 。问题是,我从来没有使用SUM()..认为该解决方案是如此接近。谢谢拉斐尔 – Alex 2012-04-07 10:19:08

4

如果你想有SUM(money)是大于500。然后,你可以这样做:

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