中位数在MDX SSAS中计算

时间:2018-04-19 07:08:35

标签: ssas mdx

这是我的情况。我在SSAS中创建OLAP多维数据集的培训很少,作为其中的一部分,我需要计算从创建问题到解决问题的中间时间。 所以根据microsoft docs我应该在MDX中使用MEDIAN函数。所以这是我的代码:

MEDIAN([Issue].[Issue ID],[Measures].[Hours Resolved])

简短说明:[措施]。[已解决的小时数]它是在数据库中根据维度计算的一个度量"已解决的发布时间" - "创作发布时间"具有DATEDIFF功能。两者都是smalldatetime数据类型。

看起来它适用于下面屏幕上的情况。 执行" Grand Total" Mediana专栏中的价值。

enter image description here

我认为Grand Total值应为12,因为这是根据计算中位数的方式得出的正确分数(也在Excel中检查)。所以我在这里错了,这是正确的行为吗?或者我可能会在SSAS的计算或配置中遗漏一些东西?

本练习中的第二个案例。 当我将添加例如下面图片中的Group Name列时:

enter image description here

在我理解的价值mediana栏中,让我们说CRM部分应该是9。

如果我对错,请指导我吗?如果我正确如何实现这一目标。或者,如果我错了,请在我的解决方案中指出错误。这是我第一次计算中位数。

1 个答案:

答案 0 :(得分:0)

有点令人尴尬的是,甚至没有人看到它 - 16个视图,可能全部是我的 - 好不再重要,因为我自己想出来了。 对于所有维度的正确中值计算,我应该在MDX中使用中值函数和范围函数。所以这是代码,如果有人将来会遇到同样的问题:

CREATE MEMBER CURRENTCUBE.[Measures].[Median]

AS Null

VISIBLE = 1;

SCOPE([Measures].[Median]);

THIS = MEDIAN([View Issue Median].[Issue ID].[Issue ID], [Measures].[Hours Resolved]);

END SCOPE;