sql >> Databasteknik >  >> RDS >> Mysql

ERROR 1064 (42000) databasfel i syntax för överpartition av

Fönsterfunktioner (som lead() ) lades endast till i MySQL 8.0, så de är inte tillgängliga i version 5.7. Du kan emulera lead() med en självanslutning som så:

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
    )

Sidanteckning:för att den här metoden ska fungera korrekt behöver du efterföljande poster med samma id att ha en annan timestamp s - vilket inte är fallet i exempeldatan som du visade, där alla tidsstämplar är desamma (jag antar att detta är ett stavfel i din exempeldata).




  1. opencart seo url omskrivning

  2. Hur slår jag samman två tabeller i MySQL och där tabell 1 är primär

  3. Hur man beräknar intäkter i MySQL

  4. SQL Välj endast rader med minimivärde i en kolumn med Where Condition