2014-04-07 3 views
0

이 문구를 가장 잘 표현하는 방법을 알아 내려고 노력하고 있지만 실제로 생각한대로 최선을 다하고 있습니다.mysql - 조건이 충족되면 다른 레코드를 무시하십시오.

나는 당신이 볼 수 있듯이 두 개의 서로 다른 결과 값이있는 쿼리

league_id user_id outcome_id 
    5  1   1 
    5  1   4 
    5  2   1 

에서 다음과 같은 출력을 가지고있다. league_id와 user_id의 사례가 둘 이상일 수 있습니다. 예를 들어 위의 5와 1의 예에서와 같이 유효합니다.

내가 원하는 것은 요약 데이터를 생성하는 것입니다. 즉, league_id와 user_id의 결과가 '4'이면 'FAIL'의 결과가 발생하고 '1'의 모든 결과가 해당 league_id 및 user_id 조합에 대해 무시됩니다. '4'가 없다면 요약이 출력됩니다.

그것은 다음과 같은 초래

...

league_id user_id outcome_id 
    5  1   FAIL 
    5  2   PASS 

미안이를 얼마나 내가 난처한 상황에 빠진거야 말을! 누군가 제발 도와 드릴까요?

감사합니다.

DS

답변

2
SELECT league_id,user_id, 
     CASE WHEN outcome=0 THEN 'PASS' ELSE 'FAIL' END as outcome_id 
FROM 
(
SELECT league_id,user_id,SUM(CASE WHEN outcome_id=4 THEN 1 ELSE 0 END) as outcome 
FROM tableName 
GROUP BY league_id,user_id 
) As Z 
+0

고맙다 너무. – dstewart101

관련 문제