Funzioni della finestra (come lead()
) sono stati aggiunti solo in MySQL 8.0, quindi non sono disponibili nella versione 5.7. Puoi emulare lead()
con un self-join in questo modo:
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
)
Nota a margine:affinché questo metodo funzioni correttamente, sono necessari record successivi dello stesso id
avere un timestamp
diverso s - che non è il caso dei dati di esempio che hai mostrato, dove tutti i timestamp sono gli stessi (presumo che si tratti di un errore di battitura nei dati di esempio).