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

固定 7 天窗口

中等 19-timeseries 时间序列 time-bucketgroup-by-dynamicresampleorigin

从 2026-09-01 00:00:00 起,把时间轴切成首尾相接的 7 天窗口:[09-01, 09-08)、[09-08, 09-15)、[09-15, 09-22)……,统计每个窗口里的事件数。

  • 窗口左闭右开:恰好在 2026-09-08 00:00:00 的事件属于第二个窗口。
  • 窗口的起点固定从 2026-09-01 开始算,与数据里第一条事件的时间无关。
  • 2026-09-01 之前的事件不统计。
  • 没有事件的窗口不输出。
  • window_start 是窗口开始的日期(date 类型)。

输入

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

输出

列为 window_start, n_events,按 window_start 升序排列。

输入表 (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,行顺序要一致)

#window_startDaten_eventsInt64
1 2026-09-01 89
2 2026-09-08 141
3 2026-09-15 228
4 2026-09-22 115
5 2026-09-29 153
6 2026-10-06 175
7 2026-10-13 33
共 7 行