0

我正在尝试评估用户的操作是否相对于另一个操作执行。这两个动作都标有时间戳。

我要评估的是,当用户在一个表中有一个条目时,例如A(两个表ID对单个用户都有相同的条目)在另一个表中是否有一个条目B,在输入时间A和 5 分钟前之间。我设法为所有值提取时间

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

但是我怎样才能让它只检查一个用户而不仅仅是评估手头的行呢?

4

1 回答 1

1

以下查询显示同时存在于ab中的记录,其中 in 的记录b出现在 5 分钟之前a

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;
于 2012-12-07T15:19:13.807 回答