sql >> Database teknologi >  >> RDS >> Sqlserver

Alternativ til lead lag-funktion i SQL Server 2008

I dit tilfælde er id s ser ud til at være numeriske, kan du bare lave en selv-join:

select t.*
from table t join
     table tnext
     on t.id = tnext.id - 1 and
        t.StatusId = 1 and
        tnext.StatusId = 6 and
        datediff(second, t.MinStartTime, tnext.MinStartTime) < 60;

Dette er ikke helt det samme minut. Det er inden for 60 sekunder. Har du faktisk brug for det samme kalendertidsminut? Hvis ja, kan du gøre:

select t.*
from table t join
     table tnext
     on t.id = tnext.id - 1 and
        t.StatusId = 1 and
        tnext.StatusId = 6 and
        datediff(second, t.MinStartTime, tnext.MinStartTime) < 60 and
        datepart(minute, t.MinStartTime) = datepart(minute, tnext.MinStartTime);


  1. Sådan opretter du en MySQL-installation til lokal test

  2. 900 byte indeksstørrelsesgrænse i tegnlængde

  3. Sådan opretter du associative arrays i Oracle-databasen

  4. Sådan migreres en Oracle-database fra AWS EC2 til AWS RDS