在 MDX SSAS 中计算的中位数

Median calculated in MDX SSAS

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

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

简短说明:[措施]。[解决时间] 这是在数据库中根据维度 "resolved issue time" - "creation issue time" 和 DATEDIFF 函数计算的措施。两者都是 smalldatetime 数据类型。

而且它看起来适用于下面屏幕上的案例。 排除 Mediana 列中的 "Grand Total" 值。

我认为总计值应该是 12,因为根据计算中位数的方式这是正确的分数(也在 Excel 中检查过)。那么我在这里错了吗,这是正确的行为吗?或者我在 SSAS 中的计算或配置中遗漏了什么?

本练习中的第二个案例。 当我将添加例如下图所示的组名称列时:

在我的理解中,CRM 部分的价值中值列应该是 9。

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

令人尴尬的是,甚至没有人看它 - 16 次浏览,可能都是我的 - 已经不重要了,因为我自己想出来了。 为了对所有维度进行正确的中值计算,我应该在 MDX 中使用 Median 函数和 Scope 函数。所以如果有人将来会遇到同样的问题,这里是代码:

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;