Funkcje okna (takie jak lead()
) zostały dodane tylko w MySQL 8.0, więc nie są dostępne w wersji 5.7. Możesz emulować lead()
z samodołączeniem w taki sposób:
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
)
Uwaga dodatkowa:aby ta metoda działała poprawnie, potrzebujesz kolejnych rekordów o tym samym id
mieć inny timestamp
s - co nie ma miejsca w przykładowych danych, które pokazałeś, gdzie wszystkie znaczniki czasu są takie same (zakładam, że jest to literówka w twoich przykładowych danych).