MDX Cookbook 12 - 计算 SMA 简单移动平均 LastPeriods() 函数的使用

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

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

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

MDX Cookbook 12 - 计算 SMA 简单移动平均 LastPeriods() 函数的使用 

我们要在这个基础上看看 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]

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

 MDX Cookbook 12 - 计算 SMA 简单移动平均 LastPeriods() 函数的使用

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

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

你可能感兴趣的:(OO)