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

SSAS Tabular:如何在月份粒度下实现不同的聚合方式?

SSAS Tabular模型快照类度量值的粒度适配解法

针对每日快照类型的活跃订阅用户数(PMC/SubscriberCnt),需根据不同日期粒度切换计算逻辑,以下是两种需求的DAX度量值实现:

1. 月/年粒度取最新值

在月、年层级展示时取该周期内最后一次快照的活跃用户数,日层级自动展示当日数值:

PMC_最新值 = 
VAR 当前上下文最大日期 = MAX('Date'[dt])
VAR 最新快照日期 = CALCULATE(MAX('Fact'[dt]), ALL('Date'), 'Fact'[dt] <= 当前上下文最大日期)
RETURN
CALCULATE(SUM('Fact'[SubscriberCnt]), 'Fact'[dt] = 最新快照日期)

逻辑说明:

  • 当前上下文最大日期:获取当前筛选上下文的最后日期(比如月粒度下为当月最后一天)
  • 最新快照日期:定位Fact表中不晚于该日期的最新快照记录日期
  • 最终计算该日期的活跃用户数总和(日粒度下上下文为单个日期,直接返回当日值)

2. 月/年粒度取平均值

在月、年层级展示时取该周期内所有快照日的活跃用户数平均值,日层级自动展示当日数值:

PMC_平均值 = 
VAR 当前上下文日期集合 = VALUES('Date'[dt])
VAR 有效快照日期 = CALCULATE(VALUES('Fact'[dt]), 'Fact'[dt] IN 当前上下文日期集合)
RETURN
IF(COUNTROWS(有效快照日期) = 0, BLANK(), AVERAGEX(有效快照日期, CALCULATE(SUM('Fact'[SubscriberCnt]))))

逻辑说明:

  • 当前上下文日期集合:获取当前筛选上下文的所有日期(比如月粒度下为当月所有日期)
  • 有效快照日期:筛选出Fact表中存在快照记录的日期
  • 对每个有效快照日期计算活跃用户数总和后取平均值;若周期内无快照则返回空白

注意事项:

  • 确保Date表与Fact表通过dt字段建立正确的关联关系
  • 日粒度下,两个度量值都会自动匹配当日的活跃用户数,无需额外调整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 09:20:21