我在事实表中有一些数字,并生成了一个使用 SUM 聚合器来汇总数字的度量。但问题是我只想对大于 10 的数字求和。我尝试在度量定义中使用通用表达式,这当然有效,但问题是我需要能够动态设置该值,因为它并不总是 10,这意味着用户应该能够自己选择它。
更具体地说,我当前的 MDX 如下所示:
和
SET [电子邮件措施] AS '{[措施].[已答复案件数],
[措施].[最大探险时间优先]、[措施].[平均探险时间优先]、
[措施].[传入电子邮件请求数]、[措施].[案例中的平均电子邮件数]、
[措施].[平均远征总次数],[措施].[已回复的传入电子邮件数量]}'
SET [组织] AS '{[组织.Id].[860]}'
SET [运算符] AS '{[Operator.Id].[3379],[Operator.Id].[3181]}'
SET [电子邮件帐户] AS '{[电子邮件帐户.Id].[6]}'
MEMBER [时间.日期].[日期期间] AS 聚合 ({[时间.日期].[2008].[11].[11] :[时间.日期].[2009].[1].[2] })
成员 [电子邮件.类型].[电子邮件类型] AS 聚合 ({[电子邮件.类型].[0]})
SELECT {[电子邮件测量]} ON 列,
[运算符] ON 行
来自 [电子邮件_事实]
WHERE ([时间.日期].[日期期间])
现在,相关成员是计算成员 [平均探险次数总计]。该成员采取了两项措施;[总探险次数] 和 [探险次数] 并将其一分为二以获得平均值,所有这些目前都有效。但是,我希望 [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])
Run Code Online (Sandbox Code Playgroud)
我不确定您想要过滤和求和的具体维度和度量,但我认为这是朝着正确方向迈出的一步。如果您的用户无法修改 MDX(或不想!),那么创建多个度量也是一个非常可靠的解决方案。