我使用以下计算成员来计算我过去 30 天的访问的移动平均值;有更短的方法吗?
WITH
MEMBER [Measures].[Visits Moving Avg] AS
AVG(
[TIME].[Time].Prevmember : [TIME].[Time].Prevmember.Prevmember.Prevmember....
, [Measures].[VISITS]
), SOLVE_ORDER = 0
最佳答案
您可以使用 Lag MDX function 而不是使用 prevMember.prevMember... 系列调用功能如下:
WITH
MEMBER [Measures].[Visits Moving Avg] AS
AVG(
[TIME].[Time].prevMember : [TIME].[Time].prevMember.lag(30)
, [Measures].[VISITS]
), SOLVE_ORDER = 0
顺便说一下,您的查询中似乎缺少 currentMember;您当前正在计算 [Time] 维度的 defaultMember 的移动平均值。使用时间维度的currentMember查询如下:
WITH
MEMBER [Measures].[Visits Moving Avg] AS
AVG(
[TIME].[Time].currentMemBer.prevMember
: [TIME].[Time].currentMemBer.prevMember.lag(30)
, [Measures].[VISITS]
), SOLVE_ORDER = 0
关于mdx - 有没有更好的方法来计算 iccube 中 MDX 的移动平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20075636/