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

HIVE: Get all records where preceding record (by timestamp) is a specific value

我正在进行路径分析,我需要查看一页指向何处。我如何编写一个查询来获取所有具有特定值的前记录的记录。

例如:

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

我只想 return 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 函数将帮助您达到预期的结果。

Examples