Как можно записать условное опережение / отставание, когда предыдущее или последующее опережение / отставание не гарантированно удовлетворяет определенному условию? В моем случае я смотрю на трафик веб-сайта c.
Образцы данных (Prior_path и Prior_event - это целевые поля, для которых у меня возникают проблемы с доступом к Prior_event с учетом моих условий)
+-----------+-----+-------+---------------------------------------+-------+------------------------------------+-------------+
| sessionid | hit | type | path | event | prior_path | prior_event |
+-----------+-----+-------+---------------------------------------+-------+------------------------------------+-------------+
| 1001 | 1 | event | www.stackoverflow.com | hover | | |
| 1001 | 2 | page | www.stackoverflow.com | | | hover |
| 1001 | 3 | event | www.stackoverflow.com | load | | |
| 1001 | 4 | event | www.stackoverflow.com | blur | | load |
| 1001 | 5 | event | www.stackoverflow.com | click | | blur |
| 1001 | 6 | page | www.stackoverflow.com/post/10 | | www.stackoverflow.com | click |
| 1001 | 7 | event | www.stackoverflow.com/post/10#details | offer | | |
| 1001 | 8 | page | www.stackoverflow.com/post/confirm | | www.stackoverflow.com/post/10 | offer |
| 1001 | 9 | page | www.stackoverflow.com/questions/10 | | www.stackoverflow.com/post/confirm | offer |
| 1001 | 10 | event | www.stackoverflow.com/questions/10 | exit | | |
+-----------+-----+-------+---------------------------------------+-------+------------------------------------+-------------+
Prior_path: последний путь, где type = page только для типов обращений страницы prior_event: последнее событие, где type = event для всех типов обращений
Обратите внимание, для обращений 8 и 9 событие «предложение» повторяется, потому что те, которые привели к этим страницам.
prior_path кажется простым, как и я
SELECT LAG(path) OVER (PARTITION BY sessionid, type ORDER BY hit) FROM my_table
, но я не уверен, как получить prior_event.