2012-03-04 6 views
0

에 의해 그룹화는 여기에 내가 함께 일하고 있어요 테이블입니다.MySQL의 쿼리 결합 식별자

는 예를 들어, 내가 가진 :

pid - wid - value 
1 - 5 - 7 
1 - 6 - 5 
1 - 7 - 9 
2 - 5 - 2 
2 - 8 - 4 
3 - 8 - 8 
3 - 7 - 12 
4 - 5 - 5 
.. - .. - .. 

지금의 내가 WID가 VALUE의 가장 높은 합계 5, 7 순서를 일치합니다 PID를 얻을한다고 가정하자.

따라서 PID 1은 합계 값이 16 (7 + 9) 인 2 개의 WID (5,7)와 일치합니다. 그리고 PID도 2와 일치하는 경우에만 1 WID (5), 그 합계 값 2 이고 PID 3 WID 일치 (7), 그 합 VALUE 12

이고 I는 SUM 값에 의해 이것과 정렬을 수행하는 쿼리를 생성해야 내림차순.

같은 :

SELECT 
    index.pid, SUM(index.value) TotalSum 
FROM index 
WHERE 
    index.wid = 5 or index.wid = 7 
GROUP BY UNIQUE(index.pid) 
ORDER BY TotalSum DESC 

나는이 쿼리가 잘못 알고하지만 난 달성하기 위해 노력하고있어 보여 주려하고있다.

답변

0

달성하고자하는 것은 정확합니다.

아래에보십시오 :

SELECT index.pid, SUM(index.value) TotalSum 
FROM index 
WHERE (wid = 5 or wid = 7) //if you want only from wid 5,7 elase no need for it 
GROUP BY index.pid 
ORDER BY TotalSum DESC 
+0

오 나는 SUM 작업이 정말 롤 존재 같아요. 내가 그것을 halped 감사합니다! – nick