Postgresql
如何提取時間戳之間的差異
SQL 新手警報:
我有一個包含時間戳資訊(44 行)的表,我現在想計算並提取任意兩個連續行之間的增量。我怎樣才能做到這一點?我使用如下查詢選擇我的數據:
SELECT * from "table" where "RecognitionTimestamp" >= '2018-10-03 00:00:00' and "RecognitionTimestamp" <= '2018-10-04 9:00:00'
我正在使用 pgAdmin4 送出查詢並查看數據。
您可以使用Windows 函式,它提供對與目前行有某種關聯的一組表行的計算。函式列表位於文件的通用視窗函式部分,lead() 和 lag() 函式是您問題的答案。您的查詢應該是這樣的;
SELECT *, "RecognitionTimestamp" - lag("RecognitionTimestamp") OVER(ORDER BY "RecognitionTimestamp") AS delta_previous, lead("RecognitionTimestamp") OVER(ORDER BY "RecognitionTimestamp") - "RecognitionTimestamp" AS delta_next FROM "table" WHERE "RecognitionTimestamp" >= '2018-10-03 00:00:00' AND "RecognitionTimestamp" <= '2018-10-04 9:00:00'