sql >> Databáze >  >> RDS >> Oracle

Časový rozdíl mezi záznamy

Toto je Oracle 9i+ využívající funkci LAG abyste získali předchozí hodnotu časového razítka, aniž byste se museli sami připojit:

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

...ale protože celá čísla představují počet dní ve výsledku, bude rozdíl menší než 24 hodin zlomkem. LAG také vrátí NULL, pokud neexistuje žádná dřívější hodnota – stejně jako při použití OUTER JOIN.

Chcete-li zobrazit minuty, použijte funkci ROUND:

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


  1. Jak mohu používat MySQL s Pythonem 3.3 a Django 1.5?

  2. Nastavení trvalých dat pro Carto/Postgresql na ACI

  3. Jak vytvořit pohled v oracle

  4. Profilování dat:Zjišťování podrobností o datech