我在BigQuery中有数据,其中包含特定列(例如时间戳记和用户ID),一些用户多次访问该网站。
目标是找出多次访问的用户的时差。
即使他们访问了14次,我也需要找出每次连续访问之间的区别。
这是我的数据示例:
答案 0 :(得分:0)
这应该会有所帮助(假设您想在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`
)