簡體   English   中英

Postgresql中行之間的時間戳差異

[英]Timestamp difference between rows in Postgresql

在PostgreSQL中我有一張桌子

CREATE TABLE cubenotification.newnotification
(
  idnewnotification serial NOT NULL,
  contratto text,
  idlocation numeric,
  typology text,
  idpost text,
  iduser text,
  idobject text,
  idwhere text,
  status text DEFAULT 'valid'::text,
  data_crea timestamp with time zone DEFAULT now(),
  username text,
  usersocial text,
  url text,
  apikey text,
  CONSTRAINT newnotification_pkey PRIMARY KEY (idnewnotification )
)

假設類型學字段可以是“ owned_task”或“ fwd_task”。 我想從數據庫中獲得的是每對夫婦“ idobject,iduser”的類型為“ fwd_task”的行的data_crea和類型為“ own_task”的行的data_crea嚴格之間以秒為單位的時間戳差異,我想還可以將EXTRACT(WEEK FROM data_crea)作為“周”,將結果按“周”分組。 我的問題主要是關於在具有相同idobject,相同iduser和不同類型的兩行之間執行時間戳排序差異。

編輯:這里一些示例數據

樣本數據

和sqlfiddle鏈接http://sqlfiddle.com/#!12/6cd64/2

您正在尋找的是兩個子選擇JOIN

SELECT EXTRACT(WEEK FROM o.data_crea) AS owned_week
     , iduser, idobject
     , EXTRACT('epoch' FROM (o.data_crea - f.data_crea)) AS diff_in_sek
FROM  (SELECT * FROM newnotification WHERE typology = 'owned_task') o
JOIN  (SELECT * FROM newnotification WHERE typology = 'fwd_task')   f
                                                         USING (iduser, idobject)
ORDER  BY 1,4

-> sqlfiddle的

我按周和時間戳記差異排序。 周數基於“ own_task”的周。

這是假設恰好有一行 “owned_task”,一個用於每個“fwd_task” (iduser, idobject)每周一個也沒有。 您的規格留有解釋的余地​​。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM