我正在尝试将计算的度量添加到我的多维数据集中。它应该计算特定成员的前3个孩子的平均分数(作为参数发送)。 我设法得到了正确的数字,但查询需要永远。
任何人都可以帮我改进吗? 这是MDX查询中的计算:
with member AVG_Score_Top3
AS Avg(
Head(
Order(
[OrganizationUnits].[OrganizationUnit Hierarchy].currentMember.children
,score
,BDESC
)
,3
)
,Score
)
select AVG_Score_Top3 on 0,
[Period].[Periods].[Month Name].members on 1
from [MyCube]
where ( [Period].[Year].&[2013],[OrganizationUnits].[OrganizationUnit Heirarchy].[Customer].&[6])
非常感谢高级
答案 0 :(得分:1)
我会替换
Head(
Order(
[OrganizationUnits].[OrganizationUnit Heirarchy].currentMember.children
,score
,BDESC
)
,3
)
通过
TopCount(
[OrganizationUnits].[OrganizationUnit Heirarchy].currentMember.children
,3
,score
)
答案 1 :(得分:1)
是否可以删除WHERE子句并将轴(1)的内容替换为:
exists( [Period].[Periods].[Month Name].members,
( [Period].[Year].&[2013],
[OrganizationUnits].[OrganizationUnit Heirarchy].[Customer].&[6] ),
'ScoreMeasureGroupName'
)
并查看性能是否有所提高(如果结果相同,因为有时度量组会扩大范围)
菲利普,