向 OLAP 多维数据集 Mondrian 模式添加百分比

Posted

技术标签:

【中文标题】向 OLAP 多维数据集 Mondrian 模式添加百分比【英文标题】:Add percentages to an OLAP cube Mondrian schema 【发布时间】:2014-08-18 09:10:36 【问题描述】:

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

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】:

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

架构不知道您在行或列上查询什么,只有客户端知道。

一些客户端工具允许您将计算度量创建为可见值的百分比,但这必须通过查询来完成。

例子:

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]

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

【讨论】:

以上是关于向 OLAP 多维数据集 Mondrian 模式添加百分比的主要内容,如果未能解决你的问题,请参考以下文章

OLAP了解与OLAP引擎——Mondrian入门

SQL Power Architect Mondrian Schema:创建两个具有相同维度的多维数据集

我们可以将字符串值显示为 mondrian olap 上的度量吗

使用蒙德里安模式的数据仓库中的多对多维度

如何计算 OLAP 多维数据集的可能大小

Mondrian OLAP 连接管理