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