我有一個簡單的SQL表,它看起來像這 -在SQL中如何根據當前行值選擇前一行?
CREATE TABLE msg (
from_person character varying(10),
from_location character varying(10),
to_person character varying(10),
to_location character varying(10),
msglength integer,
ts timestamp without time zone
);
我想找出表中的每一行是否有不同的「from_person」和「出發地點」已與互動最近3分鐘內當前行中的'to_person'。
例如,在上表中,除了孟買(當前行)的瑪麗,紐約的南希和巴塞羅那的鮑勃以外,第4行還在最近3分鐘內向查理髮送了一條消息,因此計數爲2。
類似地,對於行#2,比來自Barcelona(當前行)擺錘其他,從紐約僅南希在CA(當前行)發送的消息給Charlie所以計數爲1
實施例期望的輸出 -
0
1
0
2
我試過使用窗口函數,但它似乎是臨時在框架子句中,我可以在前後指定行數,但我無法指定時間本身。
如果您提供樣本數據作爲插入,將會容易得多。 –
當你說「最後3分鐘」時,你是指當前時間的最後3位還是記錄的時間戳? –
@TimJasko我的意思是記錄的最後3分鐘 – user375868