SELECT a.id, a.readVal
FROM consecutiv a
WHERE a.readVal !=
(SELECT b.readVal
FROM consecutiv b
WHERE b.id > a.id
ORDER BY id ASC
LIMIT 1)
ORDER BY a.id;
returnerer:
id | readval
----+---------
3 | 2
8 | 3
9 | 4
10 | 5
12 | 6
14 | 2
for det tilfælde, at den allersidste række også er nødvendig:
SELECT c.id, c.readVal, c.nextReadVal
FROM
(SELECT
a.id, a.readVal,
(SELECT b.readVal
FROM consecutiv b
WHERE b.id > a.id
ORDER BY id ASC
LIMIT 1) AS nextReadVal
FROM consecutiv a) AS c
WHERE readVal != nextReadVal OR nextReadVal IS NULL
ORDER BY c.id;
returnerer:
id | readval | nextreadval
----+---------+-------------
3 | 2 | 3
8 | 3 | 4
9 | 4 | 5
10 | 5 | 6
12 | 6 | 2
14 | 2 | 6
15 | 6 |