Sql 找出时间范围内其他表中是否存在值
我试图评估一个用户的行为是否与另一个行为相关。这两个操作都用时间戳标记 我要评估的是,当用户在一个表中有一个条目时,例如Sql 找出时间范围内其他表中是否存在值,sql,oracle,Sql,Oracle,我试图评估一个用户的行为是否与另一个行为相关。这两个操作都用时间戳标记 我要评估的是,当用户在一个表中有一个条目时,例如a(两个表对于单个用户都有相同的ID),在a的输入时间和5分钟之前,是否在另一个表中有一个条目B。我设法为所有价值观抽出时间 SELECT TO_CHAR(playdatetime - 5/(24*60),'YYYY-MM-DD HH24:MI:SS') five_min_future, TO_CHAR(playdatetime,'YYYY-MM-DD HH24:M
a
(两个表对于单个用户都有相同的ID
),在a
的输入时间和5分钟之前,是否在另一个表中有一个条目B
。我设法为所有价值观抽出时间
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
但是,我怎样才能让它只检查一个用户,而不只是评估手头的行呢 以下查询显示了
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;
:对不起,有数据的表格将有助于理解和期望的输出。