ウィンドウ関数(lead()
など )はMySQL 8.0でのみ追加されたため、バージョン5.7では使用できません。 lead()
をエミュレートできます そのような自己参加で:
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
)
補足:このメソッドが正しく機能するには、同じid
の後続のレコードが必要です 異なるtimestamp
を使用する s-これは、すべてのタイムスタンプが同じである、表示したサンプルデータには当てはまりません(これはサンプルデータのタイプミスだと思います)。