向 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 模式添加百分比的主要内容,如果未能解决你的问题,请参考以下文章
SQL Power Architect Mondrian Schema:创建两个具有相同维度的多维数据集