Fensterfunktionen (wie lead()
) wurden nur in MySQL 8.0 hinzugefügt, daher sind sie in Version 5.7 nicht verfügbar. Sie können lead()
emulieren mit einem Self-Join wie folgt:
select t.*, tlead.state, tlead.timestamp
from FinalTable t
left join FinalTable tlead
on tlead .id = t.id
and tlead.timestamp = (
select min(t1.timestamp)
from FinalTable t1
where t1.id = t.id and t1.timestamp > t.timestamp
)
Nebenbemerkung:Damit diese Methode ordnungsgemäß funktioniert, benötigen Sie nachfolgende Datensätze derselben id
um einen anderen timestamp
zu haben s - was in den Beispieldaten, die Sie gezeigt haben, nicht der Fall ist, wo alle Zeitstempel gleich sind (ich nehme an, das ist ein Tippfehler in Ihren Beispieldaten).