2017-12-02 1 views
1

열에 두 개의 연속 된 제로와 행을 얻을 수 있습니다 :쿼리 나 데이터 세트가

sid name  sub  marks subid 
11 kittu eng  55  1 
11 kittu math 0  2 
11 kittu sci  0  3 
12 bunnu eng 0  1 
12 bannu math 44  2 
12 bannu sci  0  3 
13 siva eng  0  1 
13 siva math 0  2 
13 siva sci  88  3 

을 나는 (연속 제로 표시가)이 같은 출력을 얻으려면 :

11 kittu 
13 siva 

답변

1

을 T에서 행을 선택하십시오. 동일한 sid와 더 낮은 subid를 가진 행이 순차적으로 존재하며 두 행에 모두 0 점이 있습니다. 그런 다음 DISTINCT를 수행하여 중복 조건이 발생하지 않도록 조건이 충족되는 경우를 대비하십시오.

SELECT DISTINCT sid,name 
FROM t 
WHERE EXISTS (SELECT 1 FROM T T2 
       WHERE T2.marks = 0 
       AND t.marks = 0 
       AND T2.sid = T.sid 
       AND T2.subid = t.subid + 1) 

sqlfiddle

관련 문제