我的立方体中有一个名为StayInHospital的措施。我想计算几何平均数 对于这个措施。 请参阅示例
Day , AccoutNumber , Stayinhospital , VisitCount
1 , A1 , 2 , 1
1 , A2 , 4 , 1
1 , A3 , 8 , 1
Stayinhospital
测量的第1天的上述示例的几何平均值=(2 * 4 * 8)^ 1/3
=4
我在计算成员
中完成了以下计算 Measures.WeightLog as log(StayInHospital)
Measures.ProductOfWeights as 10^Measures.WeightLog
Measures.GMLOS as (Measures.ProductOfWeights)^(1/(Measures.VisitCount))
我没有得到预期的结果。
它将StayInHospital
值相加而不是相乘
请帮忙。
答案 0 :(得分:1)
计算成员公式在聚合后应用。因此,最好的解决方案是在数据加载期间计算对数,例如: G。作为数据源视图中的命名计算,例如: G。使用表达式
添加计算log(StayInHospital) / log(10.0)
假设您的关系列名为StayInHospital
。这个表达式考虑到Log
是基础e
而不是基础10
,并将其转换为基数10的对数。
然后,根据此命名计算定义一个正常的可求和度量,名为e。 G。 LogStayInHospital。
最后,将您的度量GMLOS
定义为
( 10 ^ Measures.LogStayInHospital ) ^ (1 / Measures.VisitCount)
或等同于
10 ^ (Measures.LogStayInHospital / Measures.VisitCount)
如果一切正常,并且您不再需要它进行调试,则可以使度量LogStayInHospital
不可见。
答案 1 :(得分:0)
我不知道你的dimensions
是什么样的,所以我认为AccountNumber
是维度Account
中的一个属性。
现在将[Measures].[WeightLog]
更改为:
MEMBER [Measures].[WeightLog] AS Sum([Account].[AccountNumber].[AccountNumber].MEMBERS, Log([Measures].[StayInHospital]))
这应计算每个帐户的Log
,然后Sum
结果。
在Mosha Pasumansky's blog中你也可以读到这个(他使用了DESCENDANTS函数,但原理是一样的。