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

窗口函数与日期时间结合:Snowflake是否支持该SQL语法?

在Snowflake中实现「最近n天数量统计」的窗口函数写法可行性

嘿,这个需求很常见,刚好Snowflake完全支持你写的这种窗口函数结合日期区间的写法!

你给出的SQL语句直接就能在Snowflake里运行,完美匹配「统计最近28天数量」的场景:

select 
    t.*, 
    sum(qty) over (
        partition by article 
        order by date 
        range between interval '27 day' preceding and current row 
    ) as sum_qty_28_days 
from t;

关键部分拆解:

  • partition by article:按商品维度拆分统计,保证每个商品的最近28天数据是独立计算的
  • order by date:这是使用日期范围窗口的必要前提,窗口函数需要明确的排序逻辑来划定时间区间
  • range between interval '27 day' preceding and current row:核心的时间范围定义——以当前行的date为基准,包含往前推27天(加上当天刚好28天)到当前行的所有数据,对qty字段求和

小提示:

如果你的date字段是TIMESTAMP类型,interval '27 day'会精准计算27天的时长;如果是DATE类型,则会匹配前27个自然日,两种类型都能正常适配。要是你需要统计连续完整的28天(哪怕某天没有数据也要计入),可以结合日期维度表补全缺失日期后再用这个窗口函数,结果会更准确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 14:32:32