我们有一个活动表,用户注册和玩我们的游戏。
所以假设我们有三个字段
timestamp ts
int userId
int eventId (I.e. 1 = Register, 2 = Login)
我们要计算的是从某一天起的留存率。如果用户在上周(即 7 天)玩过游戏,则应被视为活跃用户
例如,假设我想为注册的用户设置保留曲线 2013-08-01
输出表可能类似于
Date Day Reg 2013-08-01, Active, Retention
2013-08-01 1 24 567 24 567 100%
2013-08-02 2 24 567 24 567 100%
2013-08-03 3 24 567 24 567 100%
2013-08-04 4 24 567 24 567 100%
2013-08-05 5 24 567 24 567 100%
2013-08-05 6 24 567 24 567 100%
2013-08-05 7 24 567 24 567 100%
2013-08-05 8 24 567 24 125 98.2%
2013-08-05 9 24 567 24 027 97.8%
2013-08-05 10 24 567 23 997 97.5%
2013-08-05 11 24 567 23 200 96.3%
2013-08-05 12 24 567 22 890 95.3%
....
我的 SQL 技能简直糟透了!想出这个 SQL 的任何人都可以免费喝啤酒(或 GT 在斯德哥尔摩......)!