2015-12-22 29 views
0

我正在執行路徑分析,我需要查看一個頁面通向哪裏。如何編寫一個查詢,以獲取具有特定值的前一記錄的所有記錄。HIVE:獲取先前記錄(按時間戳記)爲特定值的所有記錄

例如:

col1 timestamp 
a 1 
b 2 
a 3 
c 4 
b 5 
e 6 

我只想返回c和b

我試圖使用窗口功能,做到這一點,但我與他們沒有經驗,已經完全失敗: - !(

感謝您的答案

回答

0

你會使用lag()功能和子查詢:。

select t.* 
from (select t.*, lag(col1) over (order by timestamp) as prev_col1 
     from t 
    ) t 
where prev_col1 = 'a'; 
+0

這看起來像什麼,我期待的,但是當我我可以連接錯誤運行,由於「不支持複雜類型:MAP」。任何想法可能是什麼? – manjam

+0

我想通了。該字段是一個不支持窗口函數的地圖字段。把它放入一個子查詢可以修復這個問題,然後你的答案就可以工作。謝謝! – manjam

0

Oracle的Lead和Lag功能將幫助您實現預期的結果。

Examples