반복되는 행을 계산해야하지만 적어도 하나의 행에 status = 'new'가있는 경우 결과에 표시해야합니다.다른 쿼리와 오른쪽 가입하는 방법은 무엇입니까?
______________
URL | Status
--------------
A new
A seen
B new
C seen
는 에코해야
___________
URL | SUM
-----------
A 2 (counts both the seen one and the new one because there is at least one nwe)
B 1
내 생각이 반복되는 URL을 계산하고 RIGHT '새'가되도록 나머지 행이 사라 같은 테이블 있지만 상태에서만 행 =으로 가입하기 위해 기본적으로.
SELECT `userFlags` distinct(URL) WHERE Status = "new"
어떻게 조인 테이블에 이러한 조건을 추가합니까?
편집
나는 상태 쿼리에 = "새로운"내가 어떻게 구별 (URL) 또는 둥지 그것에 전체 쿼리를 추가 할 수 있습니다 추가 된?SELECT userFlags.URL, COUNT(*) AS SUM
FROM `userFlags`
RIGHT JOIN `userFlags` as u2 ON u2.Status = "new" AND userFlags.URL = u2.URL
GROUP BY u2.URL
ORDER BY SUM DESC
감사합니다. "고지"행을 계산해야합니다. 한 행에 "new"상태가 있으면 "new"가 아니더라도 같은 URL을 가진 모든 행을 계산해야합니다. – lisovaccaro
조건은 상태가 new 인 행만 유지하기 때문에이 방법은 작동하지 않습니다. OP의 샘플에서 URL = 1 일 때 따라서 행을 놓치게됩니다. –
그래, 나는 그것을 읽었다. 당신의 대답은 틀렸다. 쿼리가 URL = 1 일 때 잘못된 SUM을 반환합니다. –