【问题标题】:Getting time-stamp difference of same user coming multiple times on a website获取同一用户在网站上多次访问的时间戳差异
【发布时间】:2019-05-06 05:40:43
【问题描述】:

我在 BigQuery 中有数据,其中包含时间戳和用户 ID 等特定列,一些用户多次访问该网站。

目标是找出用户多次访问的时间差。

即使他们访问了 14 次,我也需要找出每次连续访问之间的差异。

这是我的数据样本:

【问题讨论】:

  • 我有访问我的网站的用户数据,其时间戳如下图所示。如果在 1 分钟的时间跨度内,一个用户来了 10 次,这意味着有 10 个时间戳,我需要将该用户列入黑名单,将其视为机器人。
  • 我尝试按升序对时间戳进行排序,然后如果用户 ID 相同但无法做到这一点,则查找连续时间戳的差异。所以寻找不同的方法。
  • 请使用edit 选项将您目前尝试的SQL 添加到您的问题中

标签: google-sheets google-bigquery timestamp


【解决方案1】:

这应该会有所帮助(假设您想要 minute 中的增量)。您可以随时切换到您需要的任何时间段(hoursecond 等)

请注意分析函数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`
)

【讨论】:

    猜你喜欢
    • 2018-07-20
    • 1970-01-01
    • 1970-01-01
    • 2019-04-20
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多