跳到主要内容

计算度量

计算度量功能为多维分析提供了灵活的度量计算方式,支持多种计算类型,帮助用户实现复杂的分析场景。本文档将详细介绍各类计算度量类型及其配置方法。


1. 条件聚合(Conditional Aggregation)

条件聚合支持基于指定的条件和聚合方式,对度量数据进行汇总计算。聚合函数包括:

聚合函数说明
Sum累加汇总
Count对选中的维度成员进行计数
Min选中维度成员中对于度量计算最小值
Max选中维度成员中对于度量计算最大值
Average选中维度成员中对于度量计算平均值
Standard Deviation选中维度成员中对于度量计算标准偏差
Population Standard Deviation选中维度成员中对于度量计算总体标准偏差
Median选中维度成员中对于度量计算中位数
Top Percent选中维度成员中对于度量计算前多少比例部分的汇总
Top Count选中维度成员中对于度量计算前多少个的汇总
Top Sum选中维度成员中对于度量计算前部汇总值最少为多少
  • 使用条件聚合: 在运行时聚合函数计算要在选择的条件下进行(选取或排除).

条件聚合函数说明与示例

1. Sum(求和)

说明:对指定维度成员的度量值进行累加。

示例:对产品类别为“饮料”的销售额求和:

Sum(
[Product].[Category].[饮料].Children,
[Measures].[Sales Amount]
)

2. Count(计数)

说明:统计满足条件的维度成员个数。

示例:统计地区中销售额大于 100 万的省份数量:

Count(
Filter(
[Region].[Province].Members,
[Measures].[Sales Amount] > 1000000
)
)

3. Min(最小值)

说明:返回维度成员中度量的最小值。

示例:找出各产品类别中销售额最小的子类销售额:

Min(
[Product].[Subcategory].Children,
[Measures].[Sales Amount]
)

4. Max(最大值)

说明:返回维度成员中度量的最大值。

示例:找出不同区域中最大销售额:

Max(
[Region].[Area].Children,
[Measures].[Sales Amount]
)

5. Average(平均值)

说明:计算维度成员中度量值的平均值。

示例:计算各客户群体的平均订单金额:

Avg(
[Customer].[Group].Children,
[Measures].[Order Amount]
)

6. Standard Deviation(样本标准差)

说明:计算维度成员中度量的样本标准差(除以 n-1)。

示例:分析产品销售额的波动性(样本标准差):

Stdev(
[Product].[Subcategory].Members,
[Measures].[Sales Amount]
)

7. Population Standard Deviation(总体标准差)

说明:计算总体标准差(除以 n)。

示例:对全部国家的销售额计算总体标准差:

StdevP(
[Geography].[Country].Members,
[Measures].[Sales Amount]
)

8. Median(中位数)

说明:返回维度成员中度量的中位数。

示例:获取所有产品类别中销售额的中位数:

Median(
[Product].[Category].Members,
[Measures].[Sales Amount]
)

9. Top Percent(前百分比求和)

说明:取前 X% 的维度成员按度量排序后的累加值。

示例:销售额排名前 20% 的客户群体的销售总额:

Sum(
TopPercent(
[Customer].[Customer Name].Members,
20,
[Measures].[Sales Amount]
),
[Measures].[Sales Amount]
)

10. Top Count(前N个求和)

说明:取前 N 个度量最大的成员进行累加。

示例:对销售额前 5 名的省份求和:

Sum(
TopCount(
[Region].[Province].Members,
5,
[Measures].[Sales Amount]
),
[Measures].[Sales Amount]
)

11. Top Sum(前累计值求和)

说明:累加度量值直到总和超过指定阈值。

示例:取销售额前几名客户,直到总销售额超过 500 万:

Sum(
TopSum(
[Customer].[Customer Name].Members,
5000000,
[Measures].[Sales Amount]
),
[Measures].[Sales Amount]
)

使用条件聚合

使用条件聚合指在上述函数中,聚合计算会在选择的条件下进行(选取或排除)。

原理:

条件聚合是指在使用聚合函数(如 SumAvgCount 等)时,引入特定的筛选条件,仅对满足条件的维度成员进行聚合计算。 它通过嵌套 FilterAggregate 或指定特定成员(如某一客户、产品、地区等),将聚合范围限制在符合条件的数据子集上。

在 MDX 中,表达式方式是将 条件逻辑嵌入聚合函数的第二参数中,如:

Sum(Dimension.Members, Aggregate(条件, [Measures].值))

作用:

  1. 实现更精细的数据分析 例如,不是对所有产品求和,而是只对“Specialty Bike Shop”客户的销售额求和。

  2. 支持业务条件下的指标建模 如:只统计 VIP 客户贡献的销售额、特定区域的利润等。

  3. 提升报表和分析的灵活性 在不更改立方体结构的前提下,通过 MDX 即可构建复杂的条件度量。

✅ 示例比较解释:

  • 未使用条件聚合:

    Sum( [Product.Products].[Category].Members, [Measures].[Sales Amount] )

    👉 对所有产品类别的销售额做无条件汇总

  • 使用条件聚合:

    Sum( [Product.Products].[Category].Members, Aggregate( [Reseller].[Specialty Bike Shop], [Measures].[Sales Amount] ) )

    👉 只汇总“Specialty Bike Shop”类型经销商的销售额,对应产品维度下每一类产品的限定销售额。

2. 受限度量(Restricted Measure)

受限度量 (Restricted Measure) 指的是在某些限制条件下的度量值。这些限制条件可能包括限制变量的范围、限制变量之间的关系或限制变量的值。例如,对于一个多维数据集,可能只考虑其中一个维度的成员在特定范围内的数据点,或考虑两个维度成员之间具有特定关系的数据点。这种限制可以帮助研究人员更好地理解数据,并可能提高分析的统计显著性。

  1. 选择基础度量字段;
  2. 添加一个或多个限定条件维度,并选择具体成员或设置为动态参数;
  3. 可选:启用常量选择,以使限定条件不受查询上下文中其他过滤器的影响。

💡 说明: 限定条件也可通过参数实现动态选择,详见限定条件使用参数

常量选择

启用后,度量的限定条件将在任何上下文中保持固定,不被页面过滤器或其他查询条件所覆盖。关闭此选项时,限定条件将随查询上下文的变化而变化。

参数限定

限定条件支持使用参数,允许用户通过交互方式选择维度成员,从而控制度量范围,提高分析灵活性。

📘 注: 指标(Indicator) 是受限度量的一种特殊形式,具备相同的限定条件机制。


3. 计算公式(Calculated Measure)

计算公式类型支持通过自定义表达式构建度量,适用于处理复杂的计算逻辑需求。

使用方法:

  • 在计算度量编辑器中输入公式;
  • 支持引用已有度量、维度成员和参数;
  • 支持多种数学和分析函数。

例如:

AVG(LastPeriods([@Sales_MA_Windows], [Time].CurrentMember), [Measures].[profit])

上例中:

  • [@Sales_MA_Windows] 是参数引用;
  • [Measures].[profit] 是度量字段引用。

工具栏支持

  • 维度成员:浏览并插入层次结构中的成员;
  • 计算成员:插入已有的计算度量;
  • 参数管理:插入或创建新的参数变量。

详见:计算公式使用参数


4. 度量控制(Measure Control)

度量控制用于创建动态可选的度量字段,使用户可以在分析过程中选择需要查看的度量。

配置步骤:

  1. 创建一个计算度量,类型选择为 度量控制
  2. 设置展示行为,添加可选的度量字段;
  3. 配置输入控件(如度量选择器微件)以实现用户交互。

📘 详细配置参考:输入控制器微件


5. 差值度量(Difference From)

差值度量支持对维度成员之间的数值进行差异或比率计算,适用于同比、环比、版本对比等场景。支持时间维度与其他类型维度的差值计算。

配置流程:

  1. 选择对比用的度量字段(支持所有度量类型);

  2. 设置基准维度(如时间);

  3. 配置对比项:

    • 当前成员;
    • 前 N 个成员;
    • 后 N 个成员;
    • 平行成员(需指定层级);
    • 祖先成员(在指定层级中);
  4. 设置对比计算方式:

    • 差值:A - B
    • 百分比差异:(A - B) / A(A - B) / B
    • 直接比值:A / B
    • 分母绝对值处理:如 (A - B) / abs(B)

这种灵活的设置方式支持多种对比维度与对比方法,满足常见的数据对比分析需求。


如需更多关于参数设置、输入控制器及图表交互的说明,请参考相关章节: