将百分比添加到OLAP多维数据集蒙德里安模式

时间:2014-08-18 09:10:37

标签: pentaho data-warehouse mondrian

我想计算一项措施的百分比。 例如: 我有一个聚合器distinct-count的度量。 我想根据当前的信息计算出该度量的百分比。

For example: gender  users-distinct-count  percentage
             male    25                    25% (25/100)
             female  41                    41% (41/100)
             unk     34                    34% (34/100)
But, if I filter out unk, I want the percentage to be out of 25+41, i.e. 66

             gender  users-distinct-count  percentage
             male    25                    37.8% (25/66)
             female  41                    %62.2 (41/66)

我还想要的是,在查看具有不同维度的数据时,总和将相应更新。

我试过了:

<CalculatedMember name="user_percentage" caption="Users Percentage" 
    formula="[Measures].user_count/ ([Measures].user_count,[dim1].[All Dim1],[dim2].[All Dim2])" dimension="Measures" visible="true">
  </CalculatedMember>

但是,当过滤维度上的值时(比如删除 “unk”,总数保持不变(在所有暗淡的情况下)。

谢谢,

1 个答案:

答案 0 :(得分:2)

您应该在客户端级别而不是架构级别执行此操作。

模式不知道您在行或列上查询的内容,只有客户端查询。

某些客户端工具允许您以可见值的百分比形式创建计算度量,但这必须由查询完成。

示例:

With 
  SET ROWSET as {[Gender].[Male],[Gender].[Female]}
  MEMBER [Gender].[Visible] as Aggregate( ROWSET, [Measures].[user_count] )
  MEMBER [Measures].[Percentage] as ( [Measures].[user_count], [Gender].CurrentMember ) / ( [Measures].[user_count], [Gender].[Vislble] ) 
SELECT
   ROWSET on Rows,
   { [Measures][user_count], [Measures].[Percentage] } on Columns
FROM [My Cube]

由于在定义百分比时必须引用在行上选择的集合,因此无法在架构级别定义它。