0

ユーザーのアクションが別のアクションに関連して実行されているかどうかを評価しようとしています。どちらのアクションもタイムスタンプでマークされています。

私が評価したいのは、ユーザーが 1 つのテーブルにエントリを持っている場合、たとえばA(両方のテーブルがID個々のユーザーに対して同じである)、別のテーブルにエントリBを持っているかどうか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

しかし、手元の行を評価するだけでなく、1人のユーザーをチェックするにはどうすればよいでしょうか?

4

1 に答える 1

1

次のクエリは、 と の両方に存在するレコードを示しますabここで、 のレコードは のレコードのb5 分前まで発生します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 に答える