如何计算1个月的用户保留期

时间:2017-06-25 06:50:40

标签: mysql tableau tableau-server

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

  1. 用户IP地址:IpAddress
  2. 每个人的唯一标记(保存为Cookie):CookieToken
  3. 用户选中的网址:Page
  4. 用户检查该页面的日期:CreatedOn
  5. 我们想要做的是在30天的时间内看到有多少人来到该网站1次,2次,3次,... 30次(意味着他们每天都来到该网站)。

    如果用户在1天内查看了5个页面并且从未返回该用户仍被视为" 1次"。

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

    如果没有人使用Tableau或其他人知道在MySQL上获取此数据的查询,我也会感激。

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

    enter image description here

2 个答案:

答案 0 :(得分: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(*)

答案 1 :(得分:0)

  1. 创建LOD计算字段,[月活动天数]以显示每个人每月的唯一天数{FIXED [CookieToken] : COUNTD(DAY([Created On])) }
  2. 在行架上放置[月活动天数]
  3. 将月份([创建时间])放置在颜色架
  4. 在列架上放置COUNTD([CookieToken])
  5. 对于大型数据集,使用COUNTD既方便又昂贵。如果性能不足,那么您可能希望预先处理数据以便预先支付该费用。

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