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

Mondrian/MDX技术咨询:按更新年份统计Nutriscore空值与非空值数量

MDX查询实现:按更新年份统计Nutriscore空/非空产品版本数

基于你提供的Mondrian Schema,以下是满足需求的MDX查询方案:


方案一:直接引用空值成员(高效)

SELECT
  {
    ([Measures].[num publication per update date], [Product].[Nutriscore].AllMembers - [Product].[Nutriscore].[null]) AS [Nutriscore非空的产品版本数],
    ([Measures].[num publication per update date], [Product].[Nutriscore].[null]) AS [Nutriscore为空的产品版本数]
  } ON COLUMNS,
  [Date of update].[Year].Members EXCLUDEEMPTY ON ROWS
FROM [Cube1]

方案二:使用Filter筛选(通用)

如果空值成员名称不是[null],可以用IsEmpty函数判断:

SELECT
  {
    Aggregate(
      Filter(
        [Product].[Nutriscore].Members,
        NOT IsEmpty([Product].[Nutriscore].CurrentMember)
      ),
      [Measures].[num publication per update date]
    ) AS [Nutriscore非空的产品版本数],
    Aggregate(
      Filter(
        [Product].[Nutriscore].Members,
        IsEmpty([Product].[Nutriscore].CurrentMember)
      ),
      [Measures].[num publication per update date]
    ) AS [Nutriscore为空的产品版本数]
  } ON COLUMNS,
  [Date of update].[Year].Members EXCLUDEEMPTY ON ROWS
FROM [Cube1]

关键说明

  • 行维度:[Date of update].[Year].Members 对应Schema中通过DimensionUsage关联的更新日期维度,按年份分组;EXCLUDEEMPTY用于过滤无数据的年份。
  • 度量选择:使用[num publication per update date],该度量对update_date计数,对应产品版本的更新记录数,匹配需求中的“产品版本数量”统计。
  • 空值处理:
    • 方案一中,Mondrian会自动为维度空值生成[null]成员,通过集合运算直接筛选非空/空成员,执行效率更高。
    • 方案二中,通过IsEmpty函数判断成员是否为空,再用Aggregate聚合对应度量值,兼容性更强,适用于空值成员命名不固定的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 14:44:55