HIVE: получить все записи, где предыдущая запись (по метке времени) является конкретным значением
Я делаю анализ пути, где мне нужно увидеть, куда ведет одна страница. Как мне написать запрос, который получает мне все записи, которые имеют предыдущую запись определенного значения.
Например:
col1 timestamp
a 1
b 2
a 3
c 4
b 5
e 6
Я хотел бы вернуть только с и б
Я пытаюсь использовать функции управления окнами, чтобы сделать это, но у меня нет опыта с ними и полностью потерпел неудачу:-(
Спасибо за ответы!
2 ответа
Решение
Вы бы использовали lag()
функция,, и подзапрос:
select t.*
from (select t.*, lag(col1) over (order by timestamp) as prev_col1
from t
) t
where prev_col1 = 'a';
Функции Lead и Lag в Oracle помогут вам достичь ожидаемых результатов.