2014-02-28 2 views
0

내가 쿼리를하고 싶습니다 내가 단지 원하는, 그러나 수를 내 쿼리는 현재 folliwng를 얻을 수 있습니다SQL 쿼리는 값이 다르면 결과 만 표시합니까?

Sample data 
    ID  Action 
1 125317 ADD 
2 125317 ADD 
3 125317 ADD 
4 125317 ADD 
5 125317 ADD 
6 125317 ADD 
7 125317 ADD 
8 125317 CLEAN 
9 125317 CLEAN 
10 125317 CLEAN 
11 125317 CLEAN 
12 125317 CLEAN 
13 125317 CLEAN 
14 125317 CLEAN 
15 359905 ADD 
16 359905 ADD 
17 359905 ADD 
18 359905 CLEAN 

(행동)에 differnt 한 결과 ..

ID ACTION COUNT1 
1 359905 ADD 3 
2 359905 CLEAN 1 
3 125317 ADD 7 
4 125317 CLEAN 7 

을 반환 그것을 returen 행 1 count1이 다르므로 row2 만 사용해야합니다.

답변

1

그냥 ID를 원하는 경우, 당신은 집계를 사용하고 having 절에 셀 수 : 당신이 수를 원하는 경우

select id 
from table t 
group by id 
having sum(action = 'add') <> sum(action = 'clean'); 

, 내가 select 절에 넣어 것 :

select id, sum(action = 'add') as adds, sum(action = 'clean') as cleans 
from table t 
group by id 
having sum(action = 'add') <> sum(action = 'clean'); 
+0

을 여기에 내 현재 쿼리는 t.id, t.action, count (t.action)를 count.l로 선택합니다. 여기서 t.id = 125317 또는 t.id = 359905 by t.id, t.action; 내 검색어에 귀하의 부품을 추가 하시겠습니까? – tyyt2010

+0

@ tyyt2010. . . 그것은 질문에 대한 중요한 변화입니다. 다른 질문을하고 이것을 참고해야합니다. –