查询以获取列中具有两个连续零的行

时间:2017-12-02 18:46:49

标签: mysql

我有一个数据集:

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 个答案:

答案 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)

sqlfiddle