在 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;
这是我的情况。我接受过在 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;