HIVE:获取前一记录(按时间戳)为特定值的所有记录

时间:2015-12-22 23:55:29

标签: sql hive windowing

我正在进行路径分析,我需要查看一页导致的位置。如何编写查询以获取具有特定值的先前记录的所有记录。

例如:

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

我想只返回c和b

我正在尝试使用窗口函数来执行此操作,但我没有使用它们并且完全失败了: - (

感谢您的回答!

2 个答案:

答案 0 :(得分:0)

您可以使用lag()功能。 。 。和子查询:

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

答案 1 :(得分:0)

Oracle的Lead和Lag功能将帮助您实现预期的结果。

Examples