2012-04-07 4 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 그룹은"합계 (돈)> 500 "

사람들에 대한 결과를 보여 즉, 금액으로 결과를 필터링하려고 BY name "그러나 출력이 잘못되었습니다 (aaron 1000, mike 610 등).

어떻게 의 필터 결과를 결과로 필터링합니까?

답변

4
Group By Name 
having sum(money) > 500 

편집 : "마지막/끝 결과"로 무엇을합니까?

+0

합니다. 문제는 솔루션을 너무 가깝다고 생각하기 위해 SUM()을 사용한 적이 없다는 것이 었습니다. Raphaël 감사합니다. – Alex

4

당신이 500이 그럼 당신은 이런 식으로 할 수있는 더 큰 다음이다 SUM(money) 갖고 싶어 : 나는 "이름 HAVING 돈> (500)에 의해 GROUP"를 추가하려했지만 오류가있어

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