SQL移动平均线

前端之家收集整理的这篇文章主要介绍了SQL移动平均线前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
sql中如何创建移动平均线?

当前表:

  1. Date Clicks
  2. 2012-05-01 2,230
  3. 2012-05-02 3,150
  4. 2012-05-03 5,520
  5. 2012-05-04 1,330
  6. 2012-05-05 2,260
  7. 2012-05-06 3,540
  8. 2012-05-07 2,330

所需表或输出

  1. Date Clicks 3 day Moving Average
  2. 2012-05-01 2,520 4,360
  3. 2012-05-04 1,330 3,260 3,120
  4. 2012-05-06 3,540 3,320
  5. 2012-05-07 2,010

解决方法

一种方法是在同一张表上加入几次.
  1. select
  2. (Current.Clicks
  3. + isnull(P1.Clicks,0)
  4. + isnull(P2.Clicks,0)
  5. + isnull(P3.Clicks,0)) / 4 as MovingAvg3
  6. from
  7. MyTable as Current
  8. left join MyTable as P1 on P1.Date = DateAdd(day,-1,Current.Date)
  9. left join MyTable as P2 on P2.Date = DateAdd(day,-2,Current.Date)
  10. left join MyTable as P3 on P3.Date = DateAdd(day,-3,Current.Date)

调整ON-Clauses的DateAdd组件以匹配您是否希望将移动平均值严格从过去到现在或几天前到几天.

>对于只需要几个数据点的移动平均值的情况,这很适用.>这不是用多个数据点移动平均线的最佳解决方案.

猜你在找的MsSQL相关文章