filter - MDX:按度量的表值过滤成员集

标签 filter mdx pentaho

我在事实表中有一些数字,并生成了一个使用 SUM 聚合器来汇总数字的度量。但问题是我只想对大于 10 的数字求和。我尝试在度量定义中使用通用表达式,这当然有效,但问题是我需要能够动态设置该值,因为它并不总是 10,这意味着用户应该能够自己选择它。

更具体地说,我当前的 MDX 如下所示:


SET [Email Measures] AS '{[Measures].[Number of Answered Cases],
[措施].[最先出现的最长远征时间], [措施].[最先出现的平均远征时间],
[措施].[传入电子邮件请求的数量],[措施].[案例中的平均电子邮件数量],
[度量].[平均总远征次数],[度量].[已回复的传入电子邮件数]}'

SET [Organizations] AS '{[Organization.Id].[860]}'
SET [Operators] AS '{[Operator.Id].[3379],[Operator.Id].[3181]}'
SET [Email Accounts] AS '{[Email Account.Id].[6]}'
成员 [Time.Date].[Date Period] AS Aggregate ({[Time.Date].[2008].[11].[11] :[Time.Date].[2009].[1].[2] })
成员 [Email.Type].[电子邮件类型] AS 聚合 ({[Email.Type].[0]})
SELECT {[Email Measures]} ON 列,
[运算符] ON 行
发件人 [Email_Fact]
WHERE ( [Time.Date].[Date Period] )

现在,有问题的成员是计算成员 [Avg Expedition Times Total]。该成员采取两项措施; [Sum Expedition Times] 和 [Nr of Expedition Times] 并将其分开以获得平均值,所有这些目前都有效。但是,我希望 [Sum Expedition Times] 仅汇总高于或低于我/用户希望的参数的值。

如何过滤 [Sum Expedition Times] 迭代的数字,而不是过滤该度量最终给我的总和?

最佳答案

您可以将成员移动到 MDX 查询中,而不是将其放入多维数据集中。然后你会得到类似......

WITH
MEMBER [Avg Expedition Times Total] AS
SUM(
    FILTER([Your Dimension],
        [Measure you want to filter] > 10),
    [Measure you want to sum])

我不确定您要过滤和求和的确切维度和度量,但我认为这是朝着正确方向迈出的一步。如果您的用户无法修改 MDX(或不想修改!),那么创建多个度量也是一个非常可靠的解决方案。

关于filter - MDX:按度量的表值过滤成员集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/515284/

相关文章:

excel - 为什么从 SSAS OLAP Cube (MDX) 获取数据时 Excel Grand Total 返回错误 (#VALUE!)?

java - 从 Java 访问 MS Analysis Services 多维数据集的最佳方式

postgresql - 如何对 PostgreSQL 数据库运行 MDX 查询?

mysql - Pentaho 计划的 PDF 报告

amazon-s3 - Pentaho - 将文件列表上传到 Amazon s3

swift - 过滤联系人返回混合联系信息 - Swift

java - 为什么 Web 逻辑和 WebSphere 中的过滤器行为不同

r - 使用函数从数据框中过滤或选择行的正确语法

javascript - Angular JS 中的响应子节点应用于多维数组对象中的过滤器

hadoop - 无法在hadoop下将pentaho数据集成客户端与Hbase连接