[英]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
我按周和時間戳記差異排序。 周數基於“ own_task”的周。
這是假設恰好有一行 “owned_task”,一個用於每個“fwd_task” (iduser, idobject)
每周一個也沒有。 您的規格留有解釋的余地。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.