加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL移动平均线

发布时间:2020-12-12 16:39:13 所属栏目:MsSql教程 来源:网络整理
导读:在SQL中如何创建移动平均线? 当前表: Date Clicks 2012-05-01 2,2302012-05-02 3,1502012-05-03 5,5202012-05-04 1,3302012-05-05 2,2602012-05-06 3,5402012-05-07 2,330 所需表或输出: Date Clicks 3 day Moving Average2012-05-01 2,520 4,3602012-05-0
在SQL中如何创建移动平均线?

当前表:

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

所需表或输出:

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

解决方法

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读