【发布时间】:2021-12-11 21:39:36
【问题描述】:
假设我有一个收集有序记录的表:
SELECT * FROM items_table ORDER BY day ASC
| day | total_items |
|---|---|
| 1 | 5 |
| 2 | 6 |
| 3 | 3 |
| 4 | 1 |
| 5 | 2 |
| 6 | 2 |
| 7 | 4 |
我希望每 3 天计算一次“total_items”的最大数量,而窗口的大小至少为 3。 如果在特定行的窗口大小不够大,则返回值应为 NULL。
| day | min_3_days_total_items |
|---|---|
| 1 | NULL |
| 2 | NULL |
| 3 | 6 |
| 4 | 6 |
| 5 | 3 |
| 6 | 2 |
| 7 | 4 |
在 Pandas 中是:
df['total_items'].rolling(3, min_periods=3).max()
如何在 BigQuery SQL 中做到这一点?
【问题讨论】:
标签: sql google-bigquery window-functions