下面的问题实际上是从另一篇文章中复制的,并要求 Tableau 的答案,但我想使用 SQL 来防止性能问题。
我正在尝试计算跨日期和过去 14 天的用户保留率。例如,如果 44 位用户在 9 月 16 日首次到达,然后其中 19 位在 9 月 17 日再次出现,那么我们在 9 月 16 日的用户的第一天留存率为 19/44。如果 41 位用户在 9 月 17 日首次出现,其中 24 位在 9 月 18 日再次出现,那么 9 月 17 日的 1 天留存率将是 24/41。如果 9 月 18 日有 18 位用户在 9 月 16 日首次到达,那么他们的 2 天留存率为 18/44。
我想要的最终结果如下所示。我试图弄清楚如何按日期计算队列日的留存率。此外,表 login 包含以下列,TimeStamp、userid、gamelabel 和 play_time。
登录表
TimeStamp | Userid | GameLabel | playtime |
-----------------------+-----------+------------+-----------
2016-09-16 21:00:24+8 | af07 | LL | 60010 |
2016-09-16 21:00:25+8 | 9dbe | YY | 60016 |
2016-09-16 21:01:24+8 | af07 | SS | 60009 |
我想要的最终结果
Retention| Today | Today- 1 Day|Today- 2 Day...|Today-12 Day |Today-13 Day
---------+--------+-------------+---------------+------------------+--------
|09/29/16| 09/28/16 | 09/27/16...| 09/17/16 | 09/16/16
0 | | | | 41/41| 44/44
1 | | | | 24/41| 19/44
2 | | | | | 18/44
3 | | | | |
7 | | | | |