首页/数据/数仓建模速查/窗口指标的 SQL 实现要点
指标体系63 条

窗口指标的 SQL 实现要点

窗口指标(近 N 日、滚动累计)在明细层用开窗或区间过滤实现:注意「按天输出滚动值」与「只算当天窗口」的差异,前者结果列随统计日变化。

数仓建模速查数据更新于 2026-10-12
区间过滤逐统计日重算窗口
开窗连续序列累积
性能大表优先预聚合

每日滚动值

每日滚动值
-- 输出每天的近 7 日支付金额(每次重算区间)
SELECT a.dt,
       (SELECT sum(pay_amt) FROM fact_pay b
        WHERE b.dt BETWEEN date_sub(a.dt, 6) AND a.dt) AS pay_amt_7d
FROM dim_date a
WHERE a.dt BETWEEN '2026-10-01' AND '2026-10-11';
逐日滚动在大数据量下成本高:常用「日增量 + 窗口移动」的增量算法,或由 OLAP 引擎承接查询。

易错点

  • 窗口定义含当天/不含当天两种实现混用
  • 逐日重算无预聚合,查询超时

数据来源与参考

  • SQL 窗口函数实践;指标平台实现笔记
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌