我有一个查询
select [num] on 0,
[measure][count] on 1
from [table];
它让我说下面
[num] - > 1 2 3
[count] - > 3 4 5
现在我想取出以下的平均值,即(1 * 3 + 2 * 4 + 3 * 5)/(3 + 4 + 5)。
有人可以为它建议一个mdx查询。
答案 0 :(得分:2)
以下代码将每个成员的值与其计数相乘,并将其总结为一个新度量。
WITH MEMBER Measures.Multiplied AS
{num}.CURRENT.ITEM(0).ITEM(0).MEMBER_VALUE * [Measure].Count
MEMBER Measures.Avrg AS
SUM({num}, Measures.Multiplied)
/
SUM({num}, [Measure].Count)
select [num] on 0,
{[measure].[count], Measures.Avrg} on 1
from [table];
<强>更新强>
对于命名集,以下代码应该有效:
WITH set num as
{[Doc].[Time].[Time]}
MEMBER Measures.Avrg AS
SUM({num}, [Doc].[Time].CURRENTMEMBER.MEMBER_VALUE * [Measures].[Count])
/
SUM({num}, [Measures].[Count])
select [num] on 1,
{[Measures].[Count], Measures.Avrg} on 0
from [Table];