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

BigQuery中实现最小窗口为3的滑动窗口最大值计算方法

BigQuery 实现3天滚动最大值方案

你可以直接通过BigQuery的窗口函数实现和Pandas df['total_items'].rolling(3, min_periods=3).max() 完全等效的计算,完整查询语句如下:

SELECT
  day,
  MAX(total_items) OVER (
    ORDER BY day ASC
    ROWS BETWEEN 2 PRECEDING AND CURRENT ROW
  ) AS min_3_days_total_items
FROM items_table
ORDER BY day ASC

逻辑说明

  • 窗口的ORDER BY day ASC规则和你原始数据的排序逻辑保持一致,保证滚动窗口取数顺序正确
  • ROWS BETWEEN 2 PRECEDING AND CURRENT ROW 定义了窗口范围:包含当前行,以及当前行往前的2行,窗口固定为3行,对应Pandas的rolling(3)参数
  • 当窗口内有效行数不足3时(比如第1、2行没有足够的前序行),MAX计算会自动返回NULL,完全匹配min_periods=3的要求
  • 执行该语句得到的输出和你给出的预期结果完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:27:05