我有一个简单的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