3

我正在使用以下计算成员来计算我在过去 30 天内访问的移动平均值;有没有更短的方法来做到这一点?

WITH 
  MEMBER [Measures].[Visits Moving Avg] AS 
      AVG(
        [TIME].[Time].Prevmember : [TIME].[Time].Prevmember.Prevmember.Prevmember....
        , [Measures].[VISITS] 
      ), SOLVE_ORDER = 0
4

1 回答 1

3

除了使用 prevMember.prevMember... 系列调用,您还可以使用Lag MDX 函数函数,如下所示:

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
于 2013-11-19T16:01:18.957 回答