我有两个维度A,B和一个通过求和聚合的度量M.
如果我要应用这两个维度,我可以得到一个表格,如下所示:
现在我遇到的问题是我想按列(或逐行)求和,以便我可以计算值的列比率:
我尝试了[Measures].[M] / SUM([Measures].[M])
或[Measures].[M] / ([All], [Measures].[M])
这样的表达式 - 无济于事。
我想补充一点,公式应该是动态的,而不是使用特定的向下钻取。 用文字表达 - 如果下钻没有最后一步,分母应该是衡量标准的总和。
我使用的是Mondrian 4.6 BTW,与该版本的MDX不完全兼容。
答案 0 :(得分:1)
您可以尝试这样的事情:
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的定义。
要获得总行数,只需在总定义中用COLSET替换ROWSET,