微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

计算谷歌大查询中的保留率或返回率

如何解决计算谷歌大查询中的保留率或返回率

我有一个查询表,有两列我想对其执行保留:-

Date                           user
2021-02-03 08:35:07 UTC        foo@abc.com
2021-02-03 08:35:07 UTC        foo1@abc.com
2021-02-04 08:35:07 UTC        foo2@abc.com
2021-02-05 08:35:07 UTC        foo@abc.com
2021-02-03 08:35:07 UTC        foo1@abc.com
2021-02-10 08:35:07 UTC        foo@abc.com
2021-02-13 08:35:07 UTC        foo1@abc.com
2021-02-18 08:35:07 UTC        foo3@abc.com
2021-02-21 08:35:07 UTC        foo2@abc.com
2021-02-23 08:35:07 UTC        foo2@abc.com
2021-02-24 08:35:07 UTC        foo5@abc.com
2021-02-24 08:35:07 UTC        foo2@abc.com

我想在这里计算每日留存率。第一天玩的唯一玩家总数也在第二天和第三天玩过,依此类推。

假设一个游戏在第 0 天和第 0 天(如果有 10 个唯一用户玩)和在第 1 天(如果其中有 4 个玩)安装,那么第 1 天的留存率为 40%,依此类推。

所以,我想计算从第 1 天到现在的留存率。

输出将是:-

Day1  Day2  Day3........DayN
40%   50%   30%         70%

解决方法

要计算第 0 天和第 1 天之间的留存率,您可以使用 intersect

select 
  ( select count(*)
    from (
      select user from mytable where date >= '2021-02-03 00:00:00' and date < '2021-02-04 00:00:00'
      intersect distinct
      select user from mytable where date >= '2021-02-04 00:00:00' and date < '2021-02-05 00:00:00'
    )
  ) / count(distinct user)
from mytable where date >= '2021-02-03 00:00:00' and date < '2021-02-04 00:00:00'

要计算第 0 天和第 2 天之间的留存率:

select 
  ( select count(*)
    from (
      select user from mytable where date >= '2021-02-03 00:00:00' and date < '2021-02-04 00:00:00'
      intersect distinct
      select user from mytable where date >= '2021-02-05 00:00:00' and date < '2021-02-06 00:00:00'
    )
  ) / count(distinct user)
from mytable where date >= '2021-02-03 00:00:00' and date < '2021-02-04 00:00:00'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?