【发布时间】:2021-06-17 19:33:14
【问题描述】:
我有两张桌子:
table1 包含一个唯一用户 ID (user_id) 列表,以及他们登录的每个日期 (date) 的时间戳
table1
-------------------
user_id | date
-------------------
User123 | 22/3/2021
User456 | 23/3/2021
User789 | 23/3/2021
User456 | 24/3/2021
User456 | 25/3/2021
User789 | 30/3/2021
table2 包含日期列表,每个日期注册的用户总数 (cum_registered_users)
table2
----------------------
date | cum_users
---------------------
22/3/2021 | 1
23/3/2021 | 3
24/3/2021 | 3
25/3/2021 | 4
26/3/2021 | 5
27/3/2021 | 5
28/3/2021 | 5
29/3/2021 | 5
30/3/2021 | 5
我要计算什么:
对于表 2 中的相同日期列表,我想知道当天(每日活跃用户)、7 天内(每周活跃用户)和过去 30 天内(每月活跃用户)登录的不同用户数用户)- 占该日期 cum_users 的百分比
7d 活跃用户的期望输出:
date | 7d_AU | DAU
---------------------
22/3/2021 | 1 | 100%
23/3/2021 | 3 | 100%
24/3/2021 | 3 | 100%
25/3/2021 | 3 | 75%
26/3/2021 | 3 | 60%
27/3/2021 | 3 | 60%
28/3/2021 | 3 | 60%
29/3/2021 | 3 | 60%
30/3/2021 | 2 | 40%
提前感谢您的任何建议
【问题讨论】:
-
您的架构不支持查询历史活跃用户。如果您正在查看一年前的
table2行,则可能没有任何table1行的最后登录日期在该日期之前的一个月内,因为所有这些用户从那以后都再次登录,所以该数据已丢失。 -
请提供样本数据和期望的输出
-
@BlueStar 感谢您的评论-您说的很对。我已经更新了上面帖子中的架构 - 这是否允许我们继续?
-
@eshirvana 感谢您的评论 - 如果您能提供帮助,我已经在上面的帖子中添加了更多详细信息?
标签: postgresql