我正在尝试向我的多维数据集添加计算度量值。它应该计算特定成员的前 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])
非常感谢您提前
我会替换
Head(
Order(
[OrganizationUnits].[OrganizationUnit Heirarchy].currentMember.children
,score
,BDESC
)
,3
)
由
TopCount(
[OrganizationUnits].[OrganizationUnit Heirarchy].currentMember.children
,3
,score
)
您能否删除 WHERE 子句并将 axis(1) 的内容替换为:
exists( [Period].[Periods].[Month Name].members,
( [Period].[Year].&[2013],
[OrganizationUnits].[OrganizationUnit Heirarchy].[Customer].&[6] ),
'ScoreMeasureGroupName'
)
并查看性能是否有所提高(以及结果是否相同,因为有时度量值组会扩大范围)
菲利普