df-drills pandas · Polars · DuckDB SQL · DuckDB Relational 题目列表 登录

累计独立用户

困难 16-window-cumulative 窗口:累计与滑动 cumulativedistinctfirst-seen

对每一个有事件的日期,统计**截至当天(含)**一共有多少个不同的用户出现过(任何事件类型都算)。

  • 日期取 ts 的日历日(列 day,日期类型)。
  • 只输出至少有一条事件的日期;某天虽然有事件、但都是老用户时,cum_users 与前一个输出日相同。
  • 同一用户无论出现多少次、在多少天出现,都只算一次。

输入

  • events(event_id, user_id, ts, event_type, page)

输出

列为 day, cum_users(整数),按 day 升序排列。

输入表 (case base,共 2 个 case:base、edge)

events web/events
#event_idint64user_idint64tsdatetimeevent_typestringpagestring
1 1 53 2026-06-03 17:57:33 login /home
2 2 53 2026-06-04 15:21:00 visit /home
3 3 53 2026-06-04 15:22:00 view /product/303
4 4 53 2026-06-04 15:32:04 add_to_cart /cart
5 5 56 2026-06-05 23:24:19 login /home
6 6 56 2026-06-05 23:29:18 view /product/202
7 7 56 2026-06-05 23:36:15 view /product/202
8 8 56 2026-06-05 23:47:36 add_to_cart /cart
9 9 56 2026-06-05 23:56:24 checkout /checkout
10 10 56 2026-06-06 19:14:00 visit /home
11 11 56 2026-06-06 19:22:53 view /product/303
12 12 56 2026-06-06 19:25:12 view /home
13 13 56 2026-06-06 19:28:25 add_to_cart /cart
14 14 29 2026-06-07 10:40:01 login /home
15 15 29 2026-06-07 10:46:43 view /product/303
16 16 29 2026-06-07 11:04:46 add_to_cart /cart
17 17 29 2026-06-07 11:09:25 checkout /checkout
18 18 34 2026-06-07 12:57:49 login /home
19 19 34 2026-06-07 13:03:57 view /product/202
20 20 34 2026-06-07 13:11:07 view /home
显示前 20 行,共 1500 行

期望输出 (case base,行顺序要一致)

#dayDatecum_usersDecimal(precision=38, scale=0)
1 2026-06-03 1.0
2 2026-06-04 1.0
3 2026-06-05 2.0
4 2026-06-06 2.0
5 2026-06-07 4.0
6 2026-06-08 4.0
7 2026-06-10 4.0
8 2026-06-15 5.0
9 2026-06-17 6.0
10 2026-06-18 8.0
11 2026-06-19 8.0
12 2026-06-20 10.0
13 2026-06-21 10.0
14 2026-06-22 10.0
15 2026-06-23 11.0
16 2026-06-24 13.0
17 2026-06-25 13.0
18 2026-06-27 13.0
19 2026-06-29 14.0
20 2026-06-30 14.0
21 2026-07-01 15.0
22 2026-07-02 16.0
23 2026-07-03 16.0
24 2026-07-04 17.0
25 2026-07-05 17.0
26 2026-07-06 18.0
27 2026-07-08 18.0
28 2026-07-09 18.0
29 2026-07-10 19.0
30 2026-07-11 19.0
31 2026-07-13 19.0
32 2026-07-14 20.0
33 2026-07-15 21.0
34 2026-07-16 21.0
35 2026-07-17 22.0
36 2026-07-19 23.0
37 2026-07-20 23.0
38 2026-07-21 23.0
39 2026-07-22 23.0
40 2026-07-23 24.0
41 2026-07-24 24.0
42 2026-07-25 24.0
43 2026-07-26 25.0
44 2026-07-28 25.0
45 2026-07-29 26.0
46 2026-07-30 27.0
47 2026-08-01 27.0
48 2026-08-02 27.0
49 2026-08-03 27.0
50 2026-08-04 27.0
显示前 50 行,共 117 行