SSAS Cube维度值相同时的聚合公式选择及钻取原记录问题
SSAS Cube 度量聚合与钻取问题解决方案
一、为每个度量指定自定义聚合公式
完全可以为单个度量配置不同的聚合逻辑,针对你需要计算AVG的场景,分两种情况处理:
场景1:基于维度成员的平均值
如果需要对维度分组后的聚合值求平均(比如每个维度组的SUM结果再取平均),直接在SSAS Cube设计器中操作:- 选中目标度量,打开属性窗口
- 找到
AggregateFunction属性,下拉选择AverageOfChildren即可
场景2:基于事实表原始行的平均值
如果需要对所有匹配维度条件的原始事实行求平均(而非维度分组后的聚合值平均),需要创建计算度量,用MDX实现:CREATE MEMBER CURRENTCUBE.[Measures].[原始行平均值] AS Avg(Existing [事实表].[事实主键].[事实主键].Members, [Measures].[原始数值度量]), FORMAT_STRING = "Standard";这里的
[事实主键]是事实表的唯一标识列,确保能遍历到每一条原始记录。
二、实现钻取到事实表原始记录
可以实现钻取查看原始记录,需完成以下配置:
- SSAS Cube端配置
在Cube设计器的「钻取」选项卡中,添加事实表中所有需要展示的原始字段(包括主键、维度关联列、数值字段等),确保钻取结果包含完整的原始行信息。 - Excel端操作
在数据透视表中右键点击需要钻取的聚合单元格,选择「显示详细信息」,即可查看所有匹配当前维度筛选条件的原始事实记录,而非聚合后的行。 - 注意事项
确保事实表包含唯一主键(如自增ID),避免SSAS在处理时合并相同维度值的行,保证钻取能返回所有原始记录。
内容的提问来源于stack exchange,提问作者Andrea Colleoni
相关产品推荐
相关产品推荐

