You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PostgreSQL中构建D0-D30 N日用户留存图表?

按注册日期构建D0-D30用户留存图表的实现求助

我需要为**所有注册且完成至少一项核心操作(上传图片或查看图片)**的用户,构建按注册日期分组的D0至D30日留存图表。其中:

  • D0指用户注册当日
  • 各N日留存率 = 该注册日用户中在Dn当日完成核心操作的人数 / 该注册日总用户数

示例说明

用户1和用户2均于2022-10-01注册(D0),后续操作如下:

So for example, user 1 and 2 both join on 2022-10-01 (day 0)
-----------------------------------------------------------------------------------------
* user 1 views a picture (day 0)        |  * user 2 adds a picture (day 0)
* user 1 adds a picture (day 1)         |  * user 2 add a picture (day 1)
* user 1 does nothing (day 2)           |  * user 2 views a picture (day 2)     
* user 1 views a picture (day 3)        |  * user 2 adds and views multiple pictures (day 3)
* user 1 does nothing (day 4)           |  * user 2 does nothing (day 4)

对应的留存图表格式如下:

date_joined | # of users |  D0  |  D1  |  D2  |  D3  |  D4 | ... | D30
----------------------------------------------------------------------
2022-10-01  |      2     | 100% | 100% |  50% | 100% |  0% | ... | X%
  • D2留存率50%:仅用户2完成查看图片的核心操作,2人中1人活跃
  • D4留存率0%:两人均未进行核心操作

现有表结构

用户表(user table)

-----------------
id | join_date 
-----------------
 1 | 2022-10-01
 2 | 2022-10-01

图片表(picture table)

id |      timestamp      | userId |     url
-------------------------------------------------
1  | 2022-10-01 10:00:00 |    2   | http://www...
2  | 2022-10-02 08:00:00 |    1   | http://www...
3  | 2022-10-02 09:00:00 |    2   | http://www...
4  | 2022-10-04 05:00:00 |    2   | http://www...
5  | 2022-10-04 06:00:00 |    2   | http://www...

浏览表(view table)

id |      timestamp      | userId 
----------------------------------
1  | 2022-10-01 11:00:00 |   1
2  | 2022-10-03 07:00:00 |   2
3  | 2022-10-04 09:00:00 |   1
4  | 2022-10-04 10:00:00 |   2
5  | 2022-10-04 11:00:00 |   2

当前遇到的问题

我目前能实现按日统计完成核心操作的总用户数,结果如下:

date       | # users who performed core action
-----------------------------------------
2022-10-01 | 100
2022-10-02 | 59
2022-10-03 | 129
2022-10-04 | 143

但该结果不符合需求:它仅展示每日完成核心操作的总用户数,无法按注册日期追踪对应用户群体在30天内的留存情况。我需要实现按注册日期分组,展示该组用户在D0到D30各日的留存率,恳请提供实现思路或解决方案。


内容的提问来源于stack exchange,提问作者Aditya Mohile

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 17:15:53