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

如何使用MDX在Cube中创建由两个维度拼接而成的新维度

实现跨维度成员组合的全新维度(MDX方案)

核心结论

直接用MDX公式无法创建独立的全新维度,但可以通过两种方式满足你的需求:


方法1:在Cube模型中创建预定义组合维度(推荐)

如果有权限修改Cube的数据源或维度设计,这是最优解:

  • 在数据源中生成包含PositionType和GeographyCluster所有笛卡尔积的视图(用SQL的CROSS JOIN即可实现)
  • 基于该视图创建新维度,将成员名称设置为PositionType + ' - ' + GeographyCluster的拼接格式
  • 重新处理Cube后,这个全新维度就能像原生维度一样被所有报表复用,性能和原生维度一致

方法2:用MDX查询动态生成组合(临时方案)

如果无法修改Cube模型,可在MDX查询中模拟组合维度的效果:

WITH 
  -- 生成两个维度所有成员的交叉组合
  SET [Position-Geography Combos] AS
    CrossJoin(
      [PositionType].[PositionType].Members,
      [GeographyCluster].[GeographyCluster].Members
    )
  -- 定义拼接后的成员名称度量
  MEMBER [Measures].[Combo Name] AS
    [PositionType].[PositionType].CurrentMember.Name + ' - ' + [GeographyCluster].[GeographyCluster].CurrentMember.Name
SELECT
  [Measures].[Combo Name] ON 0,
  [Position-Geography Combos] ON 1
FROM [你的Cube名称]
  • 该查询会输出两个维度所有成员的组合,并展示拼接后的名称
  • 局限性:仅能在当前查询中使用,无法全局复用;若维度成员数量多,CrossJoin会生成大量组合,可能影响查询性能

关键提醒

如果需要在多维数据集级别持久化这个组合维度,必须修改Cube的模型设计——MDX计算成员只能在现有维度内扩展,无法创建独立的全新维度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 19:32:04