半累加指标
更新时间: 2026-07-08 16:36:59
阅读 22
半累加指标
背景
很多用户经常使用时点值进行数据分析,例如余额指标——看最新时间点的值才有意义。但"最新时间点"的计算需要明确分组粒度:是按所有维度分组取最新值后聚合,还是按部分维度分组取最新值后聚合?不同业务场景需要不同的分组逻辑。V9.23已支持按"所有指标关联维度(剔除日期)"自动分组,但不支持灵活配置,无法满足更复杂的业务场景。
价值
- 覆盖更多场景:从"只支持按全部分组统一取最新值"升级为支持自定义分组维度,余额、库存、水位等不可累加类型的指标的计算更加灵活准确。
- 从日期扩展到更多维度:不可累加维度从固定的"统计日期"扩展到支持自定义维度(如考试次数等),适用的业务范围更广。
使用说明
- 原时点属性改名为半累加指标。半累加指标指的是在部分维度上具备累加性(即可以进行求和、平均等聚合操作),而在其他维度上不具备此属性,仅取特定值(最大 / 最小)的指标。例如,余额可以在客户维度上进行累加,但在时间维度上直接累加则不适用,因为余额通常表示某一特定时点的快照。
- 新建指标时,若需要配置不可累加维度,可以点击开启。
- 不可累加维度:必填,默认选择统计日期。指的是计算时按哪个维度取最大或最小值,若为日期类型,则可以理解为时原来的时点属性。
- 计算取值方式:默认选择最大值。指的是按不可累加维度(例如:日期/考试次数等),取最大值还是取最小值。
- 计算维度分组:有三个选项,无、跟随关联维度、自定义。指的是按什么维度进行分组,分组后按不可累计加维度取最大或最小值。选择无,则不按维度分组直接取所有数据的最大或最小值。选择跟随关联维度则于关联维度所选维度保持一致。选择自定义则可以选择所有数据模型中的维度字段。不可选择于不可累加维度一样的字段。
- 计算逻辑: MEMBER_CALC( 指标聚合函数(指标), 不可累加维度 = {INCLUDE 计算分组维度: 计算取值方式(不可累加维度)} )

场景说明1
指标: 账户余额
不可累加维度:统计日期(时间上不能累加)
计算取值方式:最大值(取最新时间的值)
计算维度分组:客户ID + 账户类型
用户问: "每个客户的账户余额是多少?"
计算分两步骤
第一步(内层)——按分组维度取最新值
- 按 {客户ID, 账户类型} 这个最细粒度,对每个分组取最新日期的余额(最大值): 分组维度 = 用户提问给的维度(客户ID) + 配置的维度分组(客户ID + 账户类型) = 取交集 → 但这里实际作用是最细分组粒度:{客户ID, 账户类型},按这个组取每个组在统计日期维度上最新的值。

第二步(外层)——按用户想问的维度聚合
- 用户只问了"每个客户",所以按客户ID聚合:

总结:先按分组维度 + 不可累加维度做最细粒度分组,在每个组里取极值,然后再按用户的查询维度做正常聚合。
场景说明2
指标:SUM(库存量)
不可累加维度:统计日期
计算取值方式:最大值(取最新时间的值)
计算维度分组:仓库所在区域
指标本身关联维度:仓库、仓库类型、仓库所在区域、统计日期
用户问: "每个仓库类型的最新库存是多少?"
- 查询维度:仓库类型
- 计算维度分组:所在区域
- 内层分组 = {仓库类型, 所在区域} ← 查询维度 ∪ 计算分组维度
第一步:按内层分组取最大日期对应的值
第二步:按查询维度聚合
文档反馈
以上内容对您是否有帮助?