sql >> Base de Datos >  >> RDS >> Mysql

ERROR 1064 (42000) error de base de datos en la sintaxis de sobrepartición por

Funciones de ventana (como lead() ) se agregaron solo en MySQL 8.0, por lo que no están disponibles en la versión 5.7. Puede emular lead() con una autounión como esta:

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 al margen:para que este método funcione correctamente, necesita registros posteriores del mismo id tener diferente timestamp s, que no es el caso en los datos de muestra que mostró, donde todas las marcas de tiempo son iguales (supongo que esto es un error tipográfico en sus datos de muestra).