Ke stolu se můžete připojit sami, ve vašem případě funguje něco takového:
SELECT
*
FROM
yourTable a
INNER JOIN yourTable b ON a.ID = b.ID + 1
WHERE TIMESTAMPDIFF(second, a.timestamp, b.timestamp) > 60
Ale to může být ošklivé, když máte ve sloupci ID mezery. A hlavně to může být ošklivé (z hlediska výkonu (když nemáte na stole dobré indexy)), když máte *spoustu dat.
Navrhoval bych tedy použít trochu pokročilejší dotazy pomocí proměnných. Bez nutnosti připojovat tabulku k sobě to obvykle běží docela rychle:
SELECT * FROM (
SELECT
yt.*,
TIMESTAMPDIFF(second, @prevTS, `timestamp`) AS timedifference,
@prevTS:=yt.`timestamp`
FROM
yourTable yt
, (SELECT @prevTS:=(SELECT MIN(`timestamp`) FROM yourTable)) vars
ORDER BY ID
)subquery_alias
WHERE timedifference > 65
- vidět, jak to funguje živě v sqlfiddle
Další vylepšení tohoto dotazu tak, aby zobrazoval dva řádky, kde je časový rozdíl příliš velký, by neměl být problém :) Když se dostanete do vážných problémů, klidně se zeptejte.