【问题标题】:How to calculate user retention for a period of 1 month如何计算 1 个月的用户留存率
【发布时间】:2017-06-26 03:35:31
【问题描述】:

我目前有一个名为 user_tracker 的表 (MySQL),其中存储:

  1. 用户IP地址:IpAddress
  2. 每人一个唯一的令牌(保存为 cookie):CookieToken
  3. 用户检查的 URL:Page
  4. 用户检查该页面的日期:CreatedOn

我们想要做的是在 30 天的时间内查看有多少人访问该站点仅 1 次、2 次、3 次、... 30 次(意味着他们每天都访问该站点)。

如果用户在 1 天内浏览了 5 个页面并且再也没有回来,则该用户仍被视为“1 次”。

我怎样才能得到这样的东西?

如果有人知道在不使用 Tableau 或其他工具的情况下也可以在 MySQL 上获取此数据的查询,我将不胜感激。

附件是使用 SAS VA 这样收集的上个月数据的屏幕截图。

【问题讨论】:

  • 如果您显示一些示例表数据,将会对其他人非常有帮助。
  • 最能解决此类问题的 Tableau 功能是详细级别 (LOD) 计算。阅读在线帮助中的 LOD 计算以开始。

标签: mysql tableau-api


【解决方案1】:

假设您的 createdOn 是一个有效的日期列,您可以计算日期间隔中的行数

如果您需要用户访问网站的不同天数,请使用 distinct createdOn

  select 
      IpAddress
      , count(distinct createdOn)
  from my_table 
  where CreatedOn between  BETWEEN NOW() - INTERVAL 30 DAY AND NOW()
  group by IpAddress

如果您想知道用户访问网站的次数,请使用 count(*)

【讨论】:

  • 另外,我怀疑 createdon 可能是未来的日期
  • 我已经在回答中发布了这个条件..希望OP让我知道..
【解决方案2】:
  1. 创建一个 LOD 计算字段,[Days Active in Month] 以显示每个人每月的唯一天数 {FIXED [CookieToken] : COUNTD(DAY([Created On])) }
  2. 将 [Days Active in Month] 放在行架上
  3. 将月份([创建日期])放在颜色架上
  4. 将 COUNTD([CookieToken]) 放在列架上

对于大型数据集,使用 COUNTD 很方便,但成本很高。如果性能不够,那么您可能需要预处理数据以预先支付该成本。

上述步骤假设所有数据都来自一年。如果您的数据涵盖多年,您需要相应地修改步骤 1 和/或 3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-06
    相关资源
    最近更新 更多