先认识一下这几个名词 Moving Average (MA) 移动平均,或者叫做移动平均线,是技术分析中一种分析时间序列数据的工具。最常见的就是利用股价,回报或交易量等变数计算出移动平均。可以利用移动平均反映出长期趋势或周期,在数学上这个也叫做卷积 Rolling Average。

还有一个概念叫做 SMA (Simple Moving Average 简单移动平均),是指某个变数之前 N 个数值的累加平均。比如,收市价的10日简单移动平均是指之前10日收市价的平均数,那么这里就可以使用 SMA 10 来表示。

先看看每天的网络订单数量的情况 -

我们要在这个基础上看看 2006年开始 SMA 30 的订单情况,也就是说统计当前日期的前30天的移动平均 Moving Average,为了方便我把对应的 SMA 30 的开始日期我也写上。

WITH
MEMBER [Measures].[SMA 30 of Order Count]
AS
AVG(
LastPeriods(30,[Date].[Date].CurrentMember)
,[Measures].[Internet Order Count]
)
MEMBER [Measures].[SMA 30 Date]
AS
LastPeriods(30,[Date].[Date].CurrentMember).Item(0).Name
SELECT
{
[Measures].[Internet Order Count],
[Measures].[SMA 30 of Order Count],
[Measures].[SMA 30 Date]
} ON 0,
{[Date].[Date].[Date].MEMBERS} ON 1
FROM [Adventure Works]
WHERE [Date].[Calendar Year].&[]

要注意的是 2006年1月1日前29天才是 2005年12月3日,因此这里的 30 其实还包括了它自己这一天。

关于 LastPeriods () 函数的使用,我的这篇 MDX 读书笔记中有详细的解释 - MDX Step by Step 读书笔记(九) - Working with Time 处理时间

更多 BI 文章请参看 BI 系列随笔列表 (SSIS, SSRS, SSAS, MDX, SQL Server)

MDX Cookbook 12 - 计算 SMA 简单移动平均 LastPeriods() 函数的使用的更多相关文章

  1. MDX Cookbook 10 - 计算 Year To Date 的 Running Total(YTD 与 PeriodsToDate 的区别)

    在这个小节中我们将计算度量值的 Year To Date 的值,也就是计算从年开始到当前时间成员为止的度量值的累加结果. 下面的这个查询显示了所有以周为单位的 Reseller Sales Amoun ...

  2. MDX Cookbook 11 - 计算 Year Over Year 增长 (同比计算) ParallelPeriod

    这一小节主要介绍如何在一个平行期间的度量值,当前值的对比对象是指当前值的上一年,上一个季度或者其它时间级别上与当前值同一时间点上的的那个对象.有一个非常常见的需求就是对比上一年同一个时间点的某个值来判 ...

  3. (转)简单移动平均线(Simple Moving Average,SMA) 定义及使用

    原文链接:https://blog.csdn.net/Enjolras_fuu/article/details/88602309   扩展:https://www.investopedia.com/t ...

  4. boost计算随机数和计算crc32简单示例 - jwybobo2007的专栏 - 博客频道 - CSDN.NET

    boost计算随机数和计算crc32简单示例 - jwybobo2007的专栏 - 博客频道 - CSDN.NET     boost::crc_32_type crc32;       crc32. ...

  5. boost计算随机数和计算crc32简单示例

    boost计算随机数和计算crc32简单示例 - jwybobo2007的专栏 - 博客频道 - CSDN.NET boost计算随机数和计算crc32简单示例 2013-02-18 17:14 10 ...

  6. MDX Cookbook 02 - 除数为零的问题

    先直接看一个例子 - WITH MEMBER [Date].[Calendar Year].[CY 2006 vs 2005 Bad] AS ], FORMAT_STRING = 'Percent' ...

  7. 12:计算2的N次方

    12:计算2的N次方 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 任意给定一个正整数N(N<=100),计算2的n次方的值. 输入 输入一个正整数N ...

  8. JAVA 基础编程练习题12 【程序 12 计算奖金】

    12 [程序 12 计算奖金] 题目:企业发放的奖金根据利润提成.利润(I)低于或等于 10 万元时,奖金可提 10%:利润高于 10 万元, 低于 20 万元时,低于 10 万元的部分按 10%提成 ...

  9. 带有“非简单参数”的函数为什么不能包含 "use strict" 指令

    非简单参数就是 ES6 里新加的参数语法,包括:1.默认参数值.2.剩余参数.3.参数解构.本文接下来要讲的就是 ES7 为什么禁止在使用了非简单参数的函数里使用 "use strict&q ...

随机推荐

  1. python 全栈开发,Day31(re模块)

    回顾昨天的内容 异常处理 try except 一定要在except之后写一些提示或者处理的内容 try: '''可能会出现异常的代码''' except ValueError: '''打印一些提示或 ...

  2. equals&&==的使用

    package stringyiwen; /* * ==:比较运算符,在基本数据类型比较的是值* ==:引用数据类型比较的是地址值 *//* * equals方法:[只]用于[引用数据数据类型],如果 ...

  3. 求next数组的两种方法

    法一解释:转自http://www.cnblogs.com/yjiyjige/p/3263858.html 关键运算步骤 i 0 1 2 3 4 5 6 7 8 9 A B A C D A B A B ...

  4. 基于 OSGi 的面向服务的组件编程,helloworld

    基于 OSGi 的面向服务的组件编程 OSGi(Open Services Gateway Initiative,开放服务网关协议)提供了一个面向服务组件的编程模型,基于 OSGi 编程,具有模块化, ...

  5. vim的基本用法

  6. python3 使用SimpleHTTPServer搭建web服务器

    刚刚萌发了一个念头,要用python来做个web服务器,秀出自己的网页.于是,开始了我的搭建web服务器之旅. 首先,如果不想使用Apache.IIS,那就需要一个HTTP服务,而python自带了一 ...

  7. eclipse无法添加tomcat

    问题如图所示 就是选择对应的版本无法选择硬盘里面的tomcat文件 关闭Eclipse 删除WorkSpace目录下/.metadata/.plugins/org.eclipse.core.runti ...

  8. POJ 2409 Let it Bead【Polya定理】(模板题)

    <题目链接> 题目大意:用k种颜色对n个珠子构成的环上色,旋转.翻转后相同的只算一种,求不等价的着色方案数. 解题分析: 对于这种等价计数问题,可以用polay定理来解决,本题是一道pol ...

  9. java中使用switch-case的用法及注意事项超全总结

    http://m.blog.csdn.net/blog/tianyazaiheruan/8988420 今天陈红军老师在用到switch的时候,这种设计到最基本的内容,可能忘记它的一些基本语法,出现了 ...

  10. docker 部署springboot应用

    第一步:搭建springboot的web应用,可在CMD命令行中通过mvn install命令将应用打成jar包:如demo-0.0.1-SNAPSHOT.jar 第二步:将jar包copy到cent ...