如何使用MDX平均函数?

how to use MDX average function?

我对 mdx 非常陌生,即将学习它。我现在遇到了麻烦,因为我想获得两个日期之间每个工作日的平均金额。 例如在 11 月 1 日到 12 月 1 日之间有 4 个星期一,所以平均值是 [Measures].[Amount] / 4,但我真的不知道如何在 MDX

中表达这个简单的函数
    with  member [Measures].[Avg] as
                    avg([Dim Date].[Day Of Week].[Day Of Week]
                     , [Measures].[amount])

 SELECT NON EMPTY { ([Measures].[Avg]), ([Measures].[Amount])} ON COLUMNS,
 NON EMPTY { ([Dim Date].[Day Of Week].[Day Of Week].ALLMEMBERS  * [Dim Date].[Date Int].[Date Int].ALLMEMBERS )} 
  ON ROWS FROM ( SELECT ( { [Dim Client].[Common Client UID].&[{xx}] } ) 
                         ON COLUMNS FROM ( SELECT ( [Dim Date].[Date Int].&[20151115] : [Dim Date].[Date Int].&[20151215] )
                         ON COLUMNS FROM [ff])) 
                         WHERE ( [Dim Client].[Common Client UID].&[{xx}] )

此查询为我提供了每个工作日以及绑定到特定工作日的所有日期,并且每个日期都有一个总金额。

就像你看到的一样,我的平均值与总数相同。我以为我可以 select 两个日期之间的所有工作日,例如找出有多少个星期一并将其除以数量。但我也想不通。

    with  member [Measures].[avg] as
                    avg([Dim Date].[Day Of Week].[Day Of Week],  [Measures].[Amount])



 SELECT NON EMPTY {[Measures].[avg], [Measures].[Amount]} ON COLUMNS, NON EMPTY { ([Dim Date].[Day Of Week].[Day Of Week].ALLMEMBERS  )} 
  ON ROWS FROM ( SELECT ( { [Dim Client].[Common Client UID].&[{xx}] } ) 
                         ON COLUMNS FROM ( SELECT ( [Dim Date].[Date Int].&[20151115] : [Dim Date].[Date Int].&[20151215] )
                         ON COLUMNS FROM [ff])) 
                         WHERE ( [Dim Client].[Common Client UID].&[{xx}] )

结果:

我该如何解决?

您真正想要的是给定日期范围内对应于该工作日的日期的平均金额。

您可以将日期范围移动到计算成员的定义中,以便在评估特定工作日的值时,也会考虑日期范围。

with  member [Measures].[Avg] as
avg
  (
   [Dim Date].[Day Of Week].CURRENTMEMBER * {[Dim Date].[Date Int].&[20151115] : [Dim Date].[Date Int].&[20151215]}
   ,[Measures].[amount]
  )

 SELECT NON EMPTY { ([Measures].[Avg]), ([Measures].[Amount])} ON COLUMNS,
 NON EMPTY [Dim Date].[Day Of Week].[Day Of Week].ALLMEMBERS * [Dim Date].[Date Int].[Date Int].ALLMEMBERS ON ROWS 
 FROM [ff]
 WHERE ( [Dim Client].[Common Client UID].&[{xx}] )