MDX:计算每个维度成员的最大值

时间:2018-05-23 12:22:25

标签: max average mdx

早上好。我有以下事实表

FK_Cmd |FK_Ship |Dilevry_time
C001   |1       |20
C001   |2       |25
C002   |1       |23

我想计算每个Cmd的平均最大交货时间,例如(25 + 23)/ 2 = 24。 我正在使用以下MDX请求:

AVG(MAX([Dim Cmd].[PR_Cmd],[Measures].[Delivery time]))

但我没有得到任何正确的结果。你可以帮忙吗?感谢

1 个答案:

答案 0 :(得分:0)

您需要将其定义为以下成员:

WITH MEMBER [Measures].[Max Delivery time] AS Max   
   ([Dim Cmd].[PR_Cmd].currentMember  
      , [Measures].Delivery time]  
   )  

 MEMBER [Measures].[Avg Max Delivery time] AS Avg
   ([Dim Cmd].[PR_Cmd].allMembers
      , [Measures].[Max Delivery time]  
   ) 

SELECT [Measures].[Avg Max Delivery time] ON 0 
FROM [Cube]

我目前没有SSAS所以我无法测试它,但它应该是类似的东西。另一种方法是将其定义为多维数据集定义中的计算成员,如果这是您的重要指标,而不是每次都使用MDX。它最终会更快,因为立方体将为您准备好这个值。