通过高于最低级别的一个级别的总和进行聚合的MDX表达式?

通过高于最低级别的一个级别的总和进行聚合的MDX表达式?,mdx,pentaho,mondrian,Mdx,Pentaho,Mondrian,我有两个维度A,B和一个通过求和聚合的度量M 如果我应用这两个维度,我可以得到一个如下所示的表: 现在我面临的问题是,我想按列(或按行)求和,以便计算值的按列比率: 我尝试了像[Measures].[M]/SUM([Measures].[M])或[Measures].[M]/([All],[Measures].[M])这样的表达式,但没有成功 我想补充一点,公式应该是动态的,而不是使用特定的深入分析。 用文字表示-如果向下钻取缺少最后一步,分母应为度量值的总和 我使用的Mondrian 4.

我有两个维度A,B和一个通过求和聚合的度量M

如果我应用这两个维度,我可以得到一个如下所示的表:

现在我面临的问题是,我想按列(或按行)求和,以便计算值的按列比率:

我尝试了像
[Measures].[M]/SUM([Measures].[M])
[Measures].[M]/([All],[Measures].[M])这样的表达式,但没有成功

我想补充一点,公式应该是动态的,而不是使用特定的深入分析。 用文字表示-如果向下钻取缺少最后一步,分母应为度量值的总和


我使用的Mondrian 4.6 BTW与该版本的MDX不完全兼容。

您可以尝试以下方法:

With 
  SET ROWSET as [Dimension 1].[Some Level].Members
  SET COLSET as [Dimension 2].[Other Level].Members

  MEMBER [Measures].[Total] as Aggregate( ROWSET, [Measures].[M] )
  MEMBER [Measures].[Ratio] as [Measures].[M] / [Measures].[Total]

Select
  ROWSET on Rows,
  COLSET * { [Measures].[M], [Measures].[Ratio] } on Columns

From [My Cube]
您的查询参数将仅用于行集和列集的定义


要按行获取总计,只需在总计定义中将ROWSET替换为COLSET,

我怀疑这是否会对我起作用,因为您的解决方案取决于指定维度。但我会尝试一下。别忘了支持BI.stackexchange.com: