2017-06-25 32 views
1

我现在有一个表(MySQL的)称为user_tracker哪些商店:如何计算用户保留了为期1个月的

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

我们想要做的是在30天的时间内看到有多少人只有1次,2次,3次,...... 30次(意思是他们每天都来到现场)来到现场。

如果用户在1天内查看5个页面,并且永远不会返回,则该用户仍被视为“1次”。

我该如何得到这样的东西?

如果有人知道在MySQL上获取这些数据的查询,而且没有使用Tableau或其他人,我也将不胜感激。

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

enter image description here

+1

如果您显示了一些示例表数据,对其他人会很有帮助。 –

+0

是的,请参阅https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple- sql-query – Strawberry

+0

最能解决此类问题的Tableau功能是细节级别(LOD)计算。阅读在线帮助中的LOD计算以获得开始。 –

回答

1

假设你createdOn是一个有效的日期列,如果你需要的不同天数的用户访问该网站,你可以指望的行数的日期间隔

使用不同createdOn

如果你想知道多少次的用户访问该网站
select 
     IpAddress 
     , count(distinct createdOn) 
    from my_table 
    where CreatedOn between BETWEEN NOW() - INTERVAL 30 DAY AND NOW() 
    group by IpAddress 

使用COUNT(*)

+0

@Strawberry distinct createdON ..答案更新.. – scaisEdge

+0

此外,我怀疑createdon可能是未来的日期 – Strawberry

+0

我已经发布这个条件的答案..希望OP让我知道.. – scaisEdge

0
  1. 创建LOD计算领域,[天在本月活跃]显示的每人每月{FIXED [CookieToken] : COUNTD(DAY([Created On])) }
  2. 广场[天在本月活跃]排货架
  3. 广场月份([创建时间上的独特的天数])的列搁板

使用COUNT天在滤色货架

  • 地点COUNT天([CookieToken])上是方便的,但对于大数据集昂贵。如果性能不够好,那么您可能需要预先处理数据以便一次性支付该成本。

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