Vensterfuncties (zoals lead() ) zijn alleen toegevoegd in MySQL 8.0, dus ze zijn niet beschikbaar in versie 5.7. U kunt lead() emuleren met een self-join zoals:
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
)
Kanttekening:om deze methode goed te laten werken, heb je opeenvolgende records van dezelfde id nodig om een ander timestamp te hebben s - wat niet het geval is in de voorbeeldgegevens die u liet zien, waar alle tijdstempels hetzelfde zijn (ik neem aan dat dit een typefout is in uw voorbeeldgegevens).