我有一个数据集:
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
答案 0 :(得分:1)
从T WHERE中选择一行,在另一行中存在一个具有相同sid和一个下部子行的行,并且这两行都有零个标记。 然后做一个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)