2012-12-07 35 views
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 

,但我怎麼能得到這個只檢查一個用戶,而不僅僅是評估手頭的行?

+0

:我很困惑對不起,數據表會有所幫助理解和期望的輸出。 –

回答

1

下面的查詢顯示同時存在於兩個ab,其中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; 
相關問題