无论层次如何,对 RANK 的 MDX 查询

JNK*_*JNK 10 ssas sql-server-2012 mdx

我希望向我的 SSAS Cube (SSAS 2012) 添加一个计算,该计算将显示当前成员与该石斑鱼中所有其他成员的相对排名,而无需提前指定石斑鱼

例如,假设我已经有一个Efficiency定义为 $$/hour 的计算。

我还想添加一个Efficiency Rank计算,它会告诉我当前成员在它设置中的相对位置。

我试过的语法是

RANK([Measures].[Efficiency].CurrentMember, [Measures].[Efficiency])
Run Code Online (Sandbox Code Playgroud)

我意识到这是不正确的。

我似乎无法在其他任何地方找到这方面的指南,所以我希望有一些既定的最佳实践或模式,因为这似乎是一个相对常见的业务需求。

小智 4

请更详细地解释一下“石斑鱼”是什么意思?

例如,如果您想对集合中的成员进行排名,您需要告诉 SSAS 您要在哪个集合中排名。

RANK( Tuple, Set, Measure to rank by)
Run Code Online (Sandbox Code Playgroud)

所以

RANK( Machines.Machines.CurrentMember, Machines.Machines.AllMembers, Measures.Efficiency)
Run Code Online (Sandbox Code Playgroud)

现在,我认为你想做的是让所有成员都充满活力?

问题是“您将如何指定当前成员和集合?”

更重要的是:您使用的前端工具也会在这里产生影响