2013-10-08 5 views
-1

다음은 내가 만든 테이블의 복제본입니다. 내 목표는 사용자 이름이 복제되지 않도록 DISTINCT를 만드는 것입니다. TOTAL 또는 각 사람이 가지고있는 가치의 합계. 예를 들어 첫 번째 행에는 Bob이 있고 두 번째 행에는 6과 같은 다른 값이 있습니다. Bob이 가진 모든 값을 더하면 25가됩니다.모든 값의 SUM을 mysql의 조건으로 사용

id  | username | value | 
1    Bob   2  
2    Chris   4 
3    Bob   6 
4    Bob   12 
5    Chris   1 
6    Bob   5 
7    Viktoriya  8 

username | value 
Bob  | 25 
Chris  | 5 
Viktoriya | 8 

내가이 공식을 사용하여이를 :

내가 찾고 있어요 결과이 같은 것입니다

SELECT username, SUM(value) AS value 
FROM my_table 
GROUP BY username 

하지만 어떻게 내가하는이 조건 만들려면이 말할 수에 대해, 나는 값 wh 만 돌려주고 싶다. ich는 5보다 높습니까? 아래의 내용을 시도했지만 작동하지 않았습니다.

SELECT username, SUM(value) AS value 
    FROM my_table 
    GROUP BY username HAVING SUM(value) > 5

쿼리는 각각의 사용자 이름 합계를 반환하고 그 합이보다 큰 확인합니다 :

SELECT username, SUM(value) AS value 
FROM my_table 
GROUP BY username 
value >= 5 

답변

1

사용 HAVING 시도하십시오 다음 집계

GROUP BY ... 
HAVING SUM(value) > 5 
+0

감사를 시도, 그것을 작동합니다! – user1973799

+0

단 하나의 간단한 질문입니다. 값을 5에서 10 사이로하고 싶습니다. 어떻게해야합니까? – user1973799

+0

'5 ~ 10 사이의 SUM (값)'을 사용합니다. –

0
SELECT username, SUM(value) AS value 
    FROM my_table 
    GROUP BY username 
    having SUM(value) >= 5 
0

에서 결과를 필터링하려면 5는 출력으로 만 리턴합니다.

0

은, 아래와 같이

SELECT username, SUM(value) AS value FROM my_table WHERE value >= 5 GROUP BY username