我正在尝试评估用户的操作是否与另一个操作相关。这两个操作都标有时间戳。
我想评估的是用户是否在一个表中有条目,例如A
(两个表对于单个用户具有相同的ID
)在B
中进入的时间与之前5分钟之间的另一个表A
中有一个条目。我设法为所有值提取时间
SELECT
TO_CHAR(playdatetime - 5/(24*60),'YYYY-MM-DD HH24:MI:SS') five_min_future,
TO_CHAR(playdatetime,'YYYY-MM-DD HH24:MI:SS') jetzt,
TO_CHAR(SEARCHDATE,'YYYY-MM-DD HH24:MI:SS') ses_time
我试着做这样的事情:
CASE
WHEN TO_CHAR(SEARCHDATE,'YYYY-MM-DD HH24:MI:SS')
BETWEEN TO_CHAR(playdatetime - 1/(24*60),'YYYY-MM-DD HH24:MI:SS')
AND
TO_CHAR(playdatetime,'YYYY-MM-DD HH24:MI:SS')
THEN 1
ELSE 0
END timediff
但是我怎么能只检查一个用户而不只是评估手头的行?
答案 0 :(得分:1)
以下查询显示a
和b
中存在的记录,其中b
中的记录最早发生在a
之前的5分钟:
select a.user_id,
a.event_dt,
b.event_dt
from a
join b
on b.user_id = a.user_id
and b.event_dt between (a.event_dt - (5 / (60 * 24))) and a.event_dt;