You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MDX计算成员过滤问题:如何按文档类型统计完成率?

解决MDX中按文档类型统计已完成占比的问题

嘿,我懂你这个困扰!你现在的[Completed Count]计算成员之所以会返回全局的已完成文档总数,是因为你直接指定了[Document].[Is Completed].&[Yes],这会覆盖掉当前查询中[Document Type]的筛选上下文——相当于不管当前选的是什么文档类型,都去查所有已完成的记录。

给你两个简单有效的解决方案:

方案1:用EXISTING保留当前上下文

修改你的[Completed Count]计算成员,加入EXISTING关键字,它会让计算尊重当前查询中已经存在的维度筛选(比如当前的文档类型):

CREATE MEMBER [Measures].[Completed Count] AS
([Measures].[Fact Count], EXISTING [Document].[Is Completed].&[Yes])

这样当你按[Document].[Document Type]分组查询时,[Completed Count]就会自动返回对应文档类型下的已完成文档数了。

方案2:直接在占比公式中保留上下文

如果你不想单独创建[Completed Count],也可以直接在占比计算里同时指定已完成和总数的上下文,确保总数是当前文档类型下的总数,而非全局总数:

CREATE MEMBER [Measures].[Completed Percentage] AS
(
    ([Measures].[Fact Count], [Document].[Is Completed].&[Yes]) 
    / 
    ([Measures].[Fact Count], [Document].[Is Completed].DefaultMember)
) * 100,
FORMAT_STRING = "0.00%"

这里用DefaultMember来获取当前文档类型下的所有文档数(不管是否完成),这样计算出来的占比就是对应类型的正确比例了,还可以加上FORMAT_STRING让结果显示为更直观的百分比格式。

你可以用下面的查询验证效果:

SELECT 
    {[Measures].[Fact Count], [Measures].[Completed Count], [Measures].[Completed Percentage]} ON 0,
    [Document].[Document Type].[Document Type].MEMBERS ON 1
FROM [YourCubeName]

这个查询就能正确列出每个文档类型的总数量、已完成数量和占比啦。

内容的提问来源于stack exchange,提问作者olf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:19:02