快速信息
我有一个 Microsoft SQL Server 分析项目,我必须在其中汇总过去 20 天时间范围内计算成员的平均值。我不知道如何解决这个问题。
是)我有的
我的计算成员看起来像:
CREATE MEMBER CURRENTCUBE.[Measures].[MyTotalSample]
AS [Measures].[ValueA]-[Measures].[ValueB]-[Measures].[ValueC],
VISIBLE = 1, ASSOCIATED_MEASURE_GROUP = 'MySamples';
这个 [MyTotalSample] 成员与 [时间] 维度相关,所以我得到每个 [时间].[天] 的 [MyTotalSample]。
结果如下表所示,例如,“2017 年 1 月 27 日”的值是“2017 年 1 月 27 日”的所有 [MyTotalSample] 值的总和。
|---------------------------------|
|[Time].[Day] | MyTotalSample |
|---------------------------------|
|January 27 2017 | 221 |
|January 28 2017 | 303 |
|January 29 2017 | 298 |
|January 30 2017 | 238 |
|---------------------------------|
到目前为止,这是有效的。
问题
但我想要做的也是从当天到过去 20 天范围内 [MyTotalSample] 的每天平均值。
要获得类似于下表的内容,其中“2017 年 1 月 27 日”的值是“2017 年 1 月 27 日”到“2017 年 1 月 8 日”范围内 [MyTotalSample] 的平均值。
|------------------------------------|
|[Time].[Day] | MyTotalSample(Avg)|
|----------------|-------------------|
|January 27 2017 | 224 |
|January 28 2017 | 228 |
|January 29 2017 | 231 |
|January 30 2017 | 226 |
|------------------------------------|
最完美的是忽略空值……但现在这并不重要……
我希望有人有这方面的经验,并且可以给我一个如何做到这一点的策略......
感谢您抽出时间
菲利克斯
我们在msdn 中找到了解决方案!
CREATE MEMBER CURRENTCUBE.[MEASURES].[MyTotalSample Moving Average]
AS Avg
(
{
[Time].[Hierarchy].CurrentMember.Lag(20)
:
[Time].[Hierarchy].CurrentMember
}
,
[Measures].[MyTotalSample]
),
VISIBLE = 1 , DISPLAY_FOLDER = 'MyDisplayFolder';
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句