ребята, у меня есть большой результат запроса, который показывает мне время (в столбце local_time
), когда райдеры (в столбце rider_id
) выходят из приложения (столбец event
), поэтому есть два отдельные значения для столбцов event
, «authentication_complete» и «logout».
event_date rider_id event local_time
20200329 100695 authentication_complete 20:07:09
20200329 100884 authentication_complete 12:00:51
20200329 100967 logout 10:53:17
20200329 100967 authentication_complete 10:55:24
20200329 100967 logout 11:03:28
20200329 100967 authentication_complete 11:03:47
20200329 101252 authentication_complete 7:55:21
20200329 101940 authentication_complete 8:58:44
20200329 101940 authentication_complete 17:19:57
20200329 102015 authentication_complete 14:20:27
20200329 102015 logout 22:47:50
20200329 102015 authentication_complete 22:48:34
что я хочу достичь, это для каждого гонщика, который когда-либо выходил из системы, в одном столбце я хочу получить время, которое они вышел из системы, и в другом столбце я хочу получить время для события «authentication_complete», которое наступает сразу после этого события выхода из системы для этого гонщика. Таким образом, я могу видеть период времени, когда каждый гонщик был вне приложения. результат запроса, который я хочу получить, будет выглядеть ниже.
event_date rider_id time_of_logout authentication_complete_right_after_the_logout
20200329 100967 10:53:17 10:55:24
20200329 100967 11:03:28 11:03:47
20200329 102015 22:47:50 22:48:34
Это был очень нечистый набор данных, и до сих пор я был в состоянии очистить это много, но на этом этапе я чувствую себя очень застрявшим. Я искал такие функции, как lag()
, но поскольку в данных содержится 180 000 строк, может быть несколько событий с именем «logout» для rider_id, и существует несколько последовательных событий с именем «authentication_complete» для одного и того же rider_id, это очень запутанно. Я был бы очень признателен за любую помощь. Спасибо!