【发布时间】:2017-08-08 19:09:13
【问题描述】:
我有两张表,一张看起来像这样,用于衡量用户何时加入:
userId Date
---- -------------
1 01-01-2013
2 01-01-2013
3 01-01-2013
4 01-01-2013
5 01-01-2013 ....
另一个看起来像这样的事件与用户相关:
id userID event Date
---- ----- --------- ------
1 1 open 01-01-2013
2 2 close 01-02-2013
3 2 move 01-03-2013
4 3 open 01-04-2013
5 5 move 01-05-2013 ....
我想获得另一个表格,给定一个日期,它会获得在该日期加入的用户中有多少在下一个连续日期或以后的日期发生了事件,并按这些连续日期对它们进行分组。
例如,在我的第一个表中,每个用户都加入了相同的日期,所以如果我查询那个日期,我想获得这个:
userCount Date
---- -------------
4 01-01-2013
3 01-02-2013
3 01-03-2013
2 01-04-2013
1 01-05-2013 ....
在第一行中,userCount 为 4,因为 userId: 1,2,3,5 出现在该日期或以后的日期,在下一行中 userCount 为 3,因为 userId: 2,3,5
出现在以后的日期,userId 1 不出现在那个日期或以后的日期,依此类推。
我如何查询才能获得这些结果?
我要衡量的是Unbounded retention 的用户。
【问题讨论】:
-
没有一个例子是每个人都在同一天加入。
-
你试过什么?示例数据将对这里有所帮助
-
您的事件表中只有 4 个用户。那是错字吗?还是您仍然希望在某个时候恢复 5 个用户数?
-
我刚刚编辑了描述。 @Xedni 你是对的,我有一个错字。
标签: sql sql-server tsql retention