计算度量
计算度量功能为多维分析提供了灵活的度量计算方式,支持多种计算类型,帮助用户实现复杂的分析场景。本文档将详细介绍各类计算度量类型及其配置方法。
- 1. 条件聚合(Conditional Aggregation)
- 2. 受限度量(Restricted Measure)
- 3. 计算公式(Calculated Measure)
- 4. 度量控制(Measure Control)
- 5. 差值度量(Difference From)
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]
)
使用条件聚合
使用条件聚合指在上述函数中,聚合计算会在选择的条件下进行(选取或排除)。
✅ 原理:
条件聚合是指在使用聚合函数(如 Sum
、Avg
、Count
等)时,引入特定的筛选条件,仅对满足条件的维度成员进行聚合计算。
它通过嵌套 Filter
、Aggregate
或指定特定成员(如某一客户、产品、地区等),将聚合范围限制在符合条件的数据子集上。
在 MDX 中,表达式方式是将 条件逻辑嵌入聚合函数的第二参数中,如:
Sum(Dimension.Members, Aggregate(条件, [Measures].值))
✅ 作用:
实现更精细的数据分析 例如,不是对所有产品求和,而是只对“Specialty Bike Shop”客户的销售额求和。
支持业务条件下的指标建模 如:只统计 VIP 客户贡献的销售额、特定区域的利润等。
提升报表和分析的灵活性 在不更改立方体结构的前提下,通过 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) 指的是在某些限制条件下的度量值。这些限制条件可能包括限制变量的范围、限制变量之间的关系或限制变量的值。例如,对于一个多维数据集,可能只考虑其中一个维度的成员在特定范围内的数据点,或考虑两个维度成员之间具有特定关系的数据点。这种限制可以帮助研究人员更好地理解数据,并可能提高分析的统计显著性。
- 选择基础度量字段;
- 添加一个或多个限定条件维度,并选择具体成员或设置为动态参数;
- 可选:启用常量选择,以使限定条件不受查询上下文中其他过滤器的影响。
💡 说明: 限定条件也可通过参数实现动态选择,详见限定条件使用参数。
常量选择
启用后,度量的限定条件将在任何上下文中保持固定,不被页面过滤器或其他查询条件所覆盖。关闭此选项时,限定条件将随查询上下文的变化而变化。
参数限定
限定条件支持使用参数,允许用户通过交互方式选择维度成员,从而控制度量范围,提高分析灵活性。
📘 注: 指标(Indicator) 是受限度量的一种特殊形式,具备相同的限定条件机制。
3. 计算公式(Calculated Measure)
计算公式类型支持通过自定义表达式构建度量,适用于处理复杂的计算逻辑需求。
使用方法:
- 在计算度量编辑器中输入公式;
- 支持引用已有度量、维度成员和参数;
- 支持多种数学和分析函数。
例如:
AVG(LastPeriods([@Sales_MA_Windows], [Time].CurrentMember), [Measures].[profit])
上例中:
[@Sales_MA_Windows]
是参数引用;[Measures].[profit]
是度量字段引用。
工具栏支持
- 维度成员:浏览并插入层次结构中的成员;
- 计算成员:插入已有的计算度量;
- 参数管理:插入或创建新的参数变量。
详见:计算公式使用参数。
4. 度量控制(Measure Control)
度量控制用于创建动态可选的度量字段,使用户可以在分析过程中选择需要查看的度量。
配置步骤:
- 创建一个计算度量,类型选择为 度量控制;
- 设置展示行为,添加可选的度量字段;
- 配置输入控件(如度量选择器微件)以实现用户交互。
📘 详细配置参考:输入控制器微件
5. 差值度量(Difference From)
差值度量支持对维度成员之间的数值进行差异或比率计算,适用于同比、环比、版本对比等场景。支持时间维度与其他类型维度的差值计算。
配置流程:
选择对比用的度量字段(支持所有度量类型);
设置基准维度(如时间);
配置对比项:
- 当前成员;
- 前 N 个成员;
- 后 N 个成员;
- 平行成员(需指定层级);
- 祖先成员(在指定层级中);
设置对比计算方式:
- 差值:
A - B
; - 百分比差异:
(A - B) / A
或(A - B) / B
; - 直接比值:
A / B
; - 分母绝对值处理:如
(A - B) / abs(B)
。
- 差值:
这种灵活的设置方式支持多种对比维度与对比方法,满足常见的数据对比分析需求。
如需更多关于参数设置、输入控制器及图表交互的说明,请参考相关章节: