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

如何用MDX查询统计SSAS维度列中特定字符的出现次数?

在Microsoft SSAS中统计字符串特定字符出现次数的MDX实现方法

MDX没有原生函数直接统计字符串中特定字符的出现次数,但可以通过LEN和REPLACE函数的组合实现,同时针对你提到的末尾带分隔符的场景做适配。

核心思路

通过计算原字符串长度与移除目标分隔符后字符串的长度差,得到分隔符的总出现次数;若存在末尾多余的分隔符,再额外修正结果。

适配场景的MDX表达式

假设你的维度列是[维度名].[列名],以下是针对示例值Image|Video|Audio|的完整计算逻辑:

IIF(
    RIGHT([维度名].[列名].CurrentMember.MemberValue, 1) = "|",
    (LEN([维度名].[列名].CurrentMember.MemberValue) - LEN(REPLACE([维度名].[列名].CurrentMember.MemberValue, "|", ""))) - 1,
    LEN([维度名].[列名].CurrentMember.MemberValue) - LEN(REPLACE([维度名].[列名].CurrentMember.MemberValue, "|", ""))
)

表达式说明

  1. 基础计数逻辑:LEN(原字符串) - LEN(REPLACE(原字符串, "|", ""))
    这个计算会得到所有|的出现次数,示例中该结果为4。
  2. 末尾分隔符修正:RIGHT(原字符串, 1) = "|"
    检查字符串最后一位是否为分隔符,若是则将计数结果减1,最终得到预期的3。

简化场景

如果你的数据中不会出现末尾多余的分隔符,直接使用以下简化表达式即可:

LEN([维度名].[列名].CurrentMember.MemberValue) - LEN(REPLACE([维度名].[列名].CurrentMember.MemberValue, "|", ""))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 00:31:14