Получение разницы в отметках времени одного и того же пользователя, приходящего на сайт несколько раз - PullRequest
0 голосов
/ 06 мая 2019

У меня есть данные в BigQuery, в которых есть определенные столбцы, такие как отметка времени и идентификатор пользователя. Некоторые пользователи посещают веб-сайт несколько раз.

Цель состоит в том, чтобы выяснить разницу во времени пользователей, посещающих несколько раз.

Даже если они посещают 14 раз, мне нужно найти разницу между каждым последующим визитом.

Это пример моих данных:

enter image description here

1 Ответ

1 голос
/ 06 мая 2019

Это должно помочь (при условии, что вы хотите дельту в minute).Вы всегда можете переключиться на любой необходимый вам период (hour, second и т. Д.)

Обратите внимание на использование аналитической функции LAG, которая использует данные, разбитые на user_id и упорядоченные по метке времени ts.Также обратите внимание, что первое появление user_id получает разницу 0, потому что это первый раз, когда пользователь появился :).Надеюсь, это поможет.

select user_id, coalesce(timestamp_diff(ts_a, ts_b, minute), 0) as diff_from_prv_visit_minutes from (
  select user_id, ts as ts_a, lag(ts) over (partition by user_id order by ts) as ts_b
  from `mydataset.mytable`
)
...