聚合某个计算成员在特定时间内的平均值
aggregate the average of a calculated member over a certain time
快速信息
我有一个 Microsoft SQL 服务器分析项目,我必须在其中汇总过去 20 天时间范围内计算成员的平均值。我不知道如何解决这个问题。
我有什么
我的计算成员看起来像:
CREATE MEMBER CURRENTCUBE.[Measures].[MyTotalSample]
AS [Measures].[ValueA]-[Measures].[ValueB]-[Measures].[ValueC],
VISIBLE = 1, ASSOCIATED_MEASURE_GROUP = 'MySamples';
此 [MyTotalSample] 成员与 [时间] 维度相关,
所以我得到每个 [Time].[Day].
的 [MyTotalSample]
结果类似于下面的 table,其中 "January 27 2017" 的值是 "January 27 2017".
的所有 [MyTotalSample] 值的总和
|---------------------------------|
|[Time].[Day] | MyTotalSample |
|---------------------------------|
|January 27 2017 | 221 |
|January 28 2017 | 303 |
|January 29 2017 | 298 |
|January 30 2017 | 238 |
|---------------------------------|
目前有效。
问题
但我还想做的是从当天到过去 20 天范围内的 [MyTotalSample] 的每日平均值。
要获得类似于下面的 table 的内容,其中 "January 27 2017" 的值是 [MyTotalSample] 在 "January 27 2017" 到 "January 08 2017" 范围内的平均值。
|------------------------------------|
|[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';
快速信息
我有一个 Microsoft SQL 服务器分析项目,我必须在其中汇总过去 20 天时间范围内计算成员的平均值。我不知道如何解决这个问题。
我有什么
我的计算成员看起来像:
CREATE MEMBER CURRENTCUBE.[Measures].[MyTotalSample]
AS [Measures].[ValueA]-[Measures].[ValueB]-[Measures].[ValueC],
VISIBLE = 1, ASSOCIATED_MEASURE_GROUP = 'MySamples';
此 [MyTotalSample] 成员与 [时间] 维度相关, 所以我得到每个 [Time].[Day].
的 [MyTotalSample]结果类似于下面的 table,其中 "January 27 2017" 的值是 "January 27 2017".
的所有 [MyTotalSample] 值的总和|---------------------------------|
|[Time].[Day] | MyTotalSample |
|---------------------------------|
|January 27 2017 | 221 |
|January 28 2017 | 303 |
|January 29 2017 | 298 |
|January 30 2017 | 238 |
|---------------------------------|
目前有效。
问题
但我还想做的是从当天到过去 20 天范围内的 [MyTotalSample] 的每日平均值。
要获得类似于下面的 table 的内容,其中 "January 27 2017" 的值是 [MyTotalSample] 在 "January 27 2017" 到 "January 08 2017" 范围内的平均值。
|------------------------------------|
|[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';