MDX 计算的测量计数

Posted

技术标签:

【中文标题】MDX 计算的测量计数【英文标题】:MDX Calculated Measure Count 【发布时间】:2015-08-13 08:48:48 【问题描述】:

我正在尝试将计算度量添加到简单的 MDX 查询中。

虽然在我对 MDX 的理解不足以完成这项工作之前,我已经管理过简单的计算度量。

无论如何,我要做的是计算我们每条卡车路线的不同订单数量。我已经尝试计算订单维度键,但这所做的只是产生系统中的订单总数,而不是每条路线的订单数。有人可以帮我吗?我觉得一旦理解了这一点,后面的 MDX 查询就会简单很多。

With Member Deliveries as

Count([Dim Order].[Order Key].children) --clearly wrong

Select non empty

[Deliveries] on 0,
[Dim Route].[Route Code].Children on 1

From [Defacto DW]

【问题讨论】:

【参考方案1】:

假设您有一个度量值组,该度量值组连接到此“订单”暗淡。假设您在此度量值组中有一个度量值,称为Measures.Order Count(我假设您应该有一个)。

如果对于任何订单,采用任何路线,那么对于该订单-路线组合,该订单将不是NULL

然后,您可以利用 NonEmpty 函数来获取这些非空交叉点的计数。

With member Deliveries as
NonEmpty
        (
         [Dim Order].[Order Key].[All].children, 
         [Measures].[Order Count]
        ).count

Select 
Deliveries on 0,
[Dim Route].[Route Code].members on 1
From [Defacto DW]

用多维数据集中的实际度量替换度量。

【讨论】:

您先生和/或女士是钻石。我计算了所有有一定数量单位的订单。很有道理。 谢谢你,很高兴能帮上忙 :) 可以在这个答案中看到应该提高性能的优化:***.com/a/62101282/5070440 基本上 Count(Filter(set, exp)) 变为 Sum(set, iif(exp,1,Null))。消除 NonEmpty 会有所帮助

以上是关于MDX 计算的测量计数的主要内容,如果未能解决你的问题,请参考以下文章

使用计算成员传递参数 - MDX

如何在 MDX 中创建周期测量?

自定义计数度量永久运行MDX

范围内总和计数的 MDX 计算

以编程方式生成 MDX 行计数查询的最简单方法?

MDX 计算共同成员 - 存在替代