首页/数据/SQL 速查/移动平均
聚合与窗口函数54 条

移动平均

用窗口帧计算近 N 行均值(如近 7 天平均销量),平滑波动;帧写法 ROWS BETWEEN 6 PRECEDING AND CURRENT ROW。

SQL 速查数据更新于 2026-10-12

示例

示例
SELECT dt, sales,
       ROUND(AVG(sales) OVER (
           ORDER BY dt
           ROWS BETWEEN 6 PRECEDING AND CURRENT ROW
       ), 2) AS ma7
FROM daily_sales
ORDER BY dt;
帧近 7 行:6 PRECEDING 到 CURRENT ROW
补齐天数不足 7 天时按已有行平均
PG 写法同一语法;也可用 RANGE + INTERVAL 按真实时间窗

易错点

  • ROWS 按行数、RANGE 按值区间:日期有缺失时两者结果不同,先想清楚要“近 7 行”还是“近 7 天”
  • PostgreSQL 可用 RANGE BETWEEN INTERVAL '6 days' PRECEDING AND CURRENT ROW 做真实时间窗

数据来源与参考

  • MySQL 8.0 Reference Manual · Window Function Frames
  • PostgreSQL Documentation · Window Functions
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌