0
我正在執行路徑分析,我需要查看一個頁面通向哪裏。如何編寫一個查詢,以獲取具有特定值的前一記錄的所有記錄。HIVE:獲取先前記錄(按時間戳記)爲特定值的所有記錄
例如:
col1 timestamp
a 1
b 2
a 3
c 4
b 5
e 6
我只想返回c和b
我試圖使用窗口功能,做到這一點,但我與他們沒有經驗,已經完全失敗: - !(
感謝您的答案
我正在執行路徑分析,我需要查看一個頁面通向哪裏。如何編寫一個查詢,以獲取具有特定值的前一記錄的所有記錄。HIVE:獲取先前記錄(按時間戳記)爲特定值的所有記錄
例如:
col1 timestamp
a 1
b 2
a 3
c 4
b 5
e 6
我只想返回c和b
我試圖使用窗口功能,做到這一點,但我與他們沒有經驗,已經完全失敗: - !(
感謝您的答案
你會使用lag()
功能和子查詢:。
select t.*
from (select t.*, lag(col1) over (order by timestamp) as prev_col1
from t
) t
where prev_col1 = 'a';
Oracle的Lead和Lag功能將幫助您實現預期的結果。
這看起來像什麼,我期待的,但是當我我可以連接錯誤運行,由於「不支持複雜類型:MAP」。任何想法可能是什麼? – manjam
我想通了。該字段是一個不支持窗口函數的地圖字段。把它放入一個子查詢可以修復這個問題,然後你的答案就可以工作。謝謝! – manjam