sql >> Databasteknik >  >> RDS >> Oracle

Skillnad i tid mellan poster

Det här är Oracle 9i+, med LAG-funktionen för att få det tidigare tidsstämpelvärdet utan att behöva gå med själv:

SELECT t.timestamp - LAG(t.timestamp) OVER (ORDER BY t.timestamp) AS diff
  FROM YOUR_TABLE t

...men eftersom heltal representerar antalet dagar i resultatet blir en skillnad på mindre än 24 timmar en bråkdel. Dessutom returnerar LAG NULL om det inte finns något tidigare värde -- samma som om man använde en OUTTER JOIN.

För att se minuter, använd ROUND-funktionen:

SELECT ROUND((t.timestamp - LAG(t.timestamp) OVER (ORDER BY t.timestamp)) *1440) AS diff_in_minutes
  FROM YOUR_TABLE t


  1. Hur man ändrar tabell i SQL Server genom att använda Alter Statement - SQL Server / T-SQL självstudie del 35

  2. Hur man formaterar tal med ledande nollor i SQLite

  3. Få en lista över alla använda tabeller i en Postgresql SELECT-fråga

  4. MySQL Gå med i kommaseparerat fält