sql >> Database >  >> RDS >> Sqlserver

sql-query voor verschil tussen huidige rij en vorige rij op basis van datetime

In SQL Server 2012+ kunt u lag() . gebruiken . Gebruik in SQL Server 2008 apply :

select t.*,
       coalesce(t.cumulativeValue - tprev.cumulativeValue, t.cumulativeValue) as diff
from t outer apply
     (select top 1 tprev.*
      from t tprev
      where tprev.siteId = t.siteId and tprev.readtime < t.readtime
      order by tprev.readtime desc
     ) tprev;


  1. Waar is de Oracle Bug Database?

  2. Gegevensverzameling op de SQL Server-databasegroei automatiseren?

  3. Hoe een tabel met beperkte externe sleutels af te kappen?

  4. Index maken in SQL om de prestaties te verbeteren