0
這是我的數據表:如何獲取最新的行會在一定條件
sessionid | page | category | productid | time
1 | detail | 3 | 4 | 20150303 1002
1 | cart | null | 4 | 20150303 1003
2 | detail | 5 | 3 | 20150303 1005
2 | detail | 5 | 3 | 20150303 1007
2 | detail | null | 2 | 20150303 1008
2 | cart | null | 3 | 20150303 1010
2 | detail | 1 | 3 | 20150303 1013
這是我的期望輸出
sessionid | page | category | productid | time | refercategory
1 | cart | null | 4 | 20150303 1003 | 3
2 | cart | null | 3 | 20150303 1010 | 5
基本上,我想看看只車事件,以及從事件之前的最近的詳細信息行中獲取類別字段,該字段具有非空類別值和相同的productid。因此,對於sessionid = 2的最後一個購物車事件,我會繼續上去,直到我用相同的sessionid(= 2),相同的productid(= 3)和非空類別值(= 5)擊中詳細信息頁面。
我試過加入(但不能限制到一個結果)和滯後(但無法正確過濾頁面)。我很感激關於這個令人困惑的問題的任何提示。謝謝!
嗨,感謝您的幫助!在這裏,我如何確保我拉取發生在購物車事件「之前」的詳細信息行? – magu2 2015-03-31 06:09:37
澄清我已編輯最後一行的類別和時間。現在你的小提琴拉1作爲refercategory而不是我打算的5 .. – magu2 2015-03-31 06:12:03
謝謝!這在SQL中很適用。我認爲唯一的問題是Hive不允許我在t2.time =()之後使用子查詢。任何解決方法? – magu2 2015-03-31 10:10:49