反馈已提交

网络繁忙

您正在浏览的是 FineBI7.X 帮助文档,点击跳转至: FineBI6.X帮助文档

半累加指标

  • 文档创建者:April陶
  • 历史版本:6
  • 最近更新:Lily.Wang 于 2026-10-30
  • 1. 概述

    1.1 应用场景

    对于销售额、订单数量等指标,通常可以直接按照不同维度进行求和。

    但账户余额、库存余量等数据有所不同。例如,同一个账户一天内产生了多次余额记录,如果要计算当前账户余额,需要取得该账户最新时间对应的余额,而不能将不同时间的余额全部相加。

    场景计算方式
    账户余额每个账户取最新时间对应的余额,再按地区、网点等维度汇总
    库存余量每个库房、商品取最新时间对应的库存,再按地区等维度汇总

    1.2 功能简介

    半累加是创建指标时的一项可选配置,用于处理部分维度不能直接累加,而其他维度仍需要正常汇总的场景。

    例如,计算账户余额时:

    • 沿「时间」维度不能直接累加,需要取每个账户最新时间对应的余额;

    • 沿「地区」维度仍可以正常汇总,将该地区下各账户的余额相加。

    开启「半累加指标」后,可以通过「不可累加维度」「窗口分组」和「取值」控制具体的计算规则,无需手动编写复杂公式。

    2. 设置半累加指标

    2.1 配置说明

    进入语义模型编辑页面,创建或编辑指标。

    完成指标名称、计算方式等基础设置后,开启「半累加指标」,并设置以下内容:

    配置项说明
    不可累加维度

    指标不能直接进行累加的维度,系统将根据该维度寻找指定记录。

    最多只可选择 1 个。

    窗口分组

    确定分别在哪些分组中寻找不可累加维度的指定值

    不设置时,将基于全部数据寻找不可累加维度的最大值或最小值

    取值设置取得不可累加维度的最大值或最小值

    例如:

    示例场景可视化配置

    求最晚时间的账户余额

    按账户取「最后一次流水时间」的余额,再按「网点/支行」汇总


    • 不可累加维度 = 时间

    • 窗口分组 = 账户

    • 取值 = 最大值

    求最晚时间的库存余量

    按库房、品类取「最后一次记录时间」的库存,再按地区汇总
    • 不可累加维度 = 时间

    • 窗口分组 = 库房 + 品类

    • 取值 = 最大值

    求考生科目的最高成绩考生同一科目多次考试,取「最高/最低分」作为最终成绩
    • 不可累加维度 = 考试次数

    • 窗口分组 = 考生 + 科目

    • 取值 = 最大值 / 最小值

    2.2 示例:创建账户余额指标

    例如,存在以下账户流水数据:

    地区账户时间流水余额
    AZH1002025-10-11 18:00100
    AZH1002025-10-11 19:00200
    AZH1012025-10-11 18:00300

    现在需要计算每个账户的最新余额,并进一步查看各地区的账户余额合计。

    如果直接对「流水余额」求和,地区 A 的结果为:100 + 200 + 300 = 600

    但 ZH100 在 18:00 的余额 100 已经被 19:00 的余额 200 更新,因此不能将两条记录同时累加。

    正确的计算结果应该为:ZH100 最新余额 200 + ZH101 最新余额 300 = 500

    2.2.1 创建指标

    在语义模型中创建「账户余额」指标。计算方式选择「字段」,选择「流水余额」并设置对应的汇总方式。

    然后开启「半累加指标」,设置:

    配置项设置
    不可累加维度时间
    窗口分组账户
    取值最大值

    2026-09-14_18-03-35.png

    此时,系统会分别在每个账户中找到最大的「时间」,并取得该时间对应的流水余额。

    对于示例数据:

    • ZH100 的最大时间为 2025-10-11 19:00,对应余额为 200;

    • ZH101 的最大时间为 2025-10-11 18:00,对应余额为 300。

    设置完成后保存指标。

    后续可以将该指标加入模型指标集并发布,在分析主题中按照地区、账户等可用维度进行分析。

    2.2.2 效果预览

    完成指标配置后,查询数据结果。地区 A 所有账户余额为「500」。

    账户「ZH100」余额为「200」。

    添加所有字段预览数据明细,效果如下图所示:

    2026-09-14_18-50-32.png

    3. 计算逻辑

    半累加指标可以理解为:先确定应该保留哪一条记录,再进行正常汇总。

    整体计算顺序为:先应用指标过滤条件 → 按窗口分组查找不可累加维度的最大值或最小值 → 取得对应的指标结果 → 按其他分析维度正常汇总。

    以「账户余额」为例,配置:不可累加维度 = 时间;窗口分组 = 账户;取值 = 最大值

    系统会先按照「账户」分别计算,找到每个账户最大的时间,并取得该时间对应的余额。

    之后,如果按照「地区」分析,则再将该地区下各账户已经计算出的余额进行汇总。

    因此,半累加并不是让指标完全不能累加,而是只对指定维度采用特殊取值规则,其他维度仍按照指标原有的汇总方式计算。

    点击展开更多
    半累加函数计算逻辑转化为公式如下:

    汇总方式(def_add(汇总方式(指标) , [窗口分组] ,[不可累加维度=def(最大/最小值聚合函数(不可累加维度),add_dim())]))

    公式说明:

    1. 外层汇总方式:按用户预期的最终聚合方式(如 “平均”“求和”),对窗口分组计算后的结果再次聚合(例:求支行下各账户平均余额,先算每个账户余额,再按支行求平均);

    2. 内层汇总方式:若窗口分组内不可累加维度最大/最小值对应多条记录(数据异常场景),复用配置的汇总方式处理(如余额场景选 “求和” 则累加多条最大/最小值记录,优先规避数据异常导致的计算逻辑复杂化);

    3. def_add/def 函数:实现窗口分组内不可累加维度的最大/最小值筛选,max_agg对应 “取值 = 最大值”,min_agg对应 “取值 = 最小值”;

    4. add_dim:规避 def_add 函数第一个参数必须为数值的限制,曲线兼容字段类型。

    4. 使用说明

    4.1 不可累加维度最多选择一个

    一个半累加指标只能设置一个「不可累加维度」。

    例如,账户余额场景中按照「时间」寻找最大值。如果同时设置多个不可累加维度,将无法明确应该按照哪个维度寻找最大值或最小值。

    4.2 窗口分组可以不设置

    「窗口分组」用于确定分别在哪些对象中寻找不可累加维度的最大值或最小值。

    例如:窗口分组 = 账户

    表示分别寻找每个账户的最大时间。

    如果不设置窗口分组,则基于全部数据寻找不可累加维度的最大值或最小值,再取得对应的数据进行计算。

    因此,大多数需要计算「每个账户最新余额」「每个商品最新库存」的场景,都需要根据实际业务对象设置窗口分组。

    4.3 最大值或最小值对应多条记录

    如果同一个窗口分组中,不可累加维度的最大值或最小值对应多条数据,系统会继续按照当前指标设置的汇总方式处理这些记录。

    例如,同一账户在相同的最大时间存在多条余额记录,指标汇总方式为「求和」时,将对这些记录继续求和。

    如果业务上不应出现多条记录,建议检查原始数据是否存在重复数据。

    4.4 与过滤条件组合使用

    半累加指标可以同时设置指标过滤条件。

    计算时,会先应用过滤条件,再执行半累加计算。

    例如,只计算「正常营业门店」的最新库存时,会先筛选出正常营业门店的数据,再分别取得各商品最新日期对应的库存。

    4.5 与时间衍生组合使用

    半累加指标可以继续设置时间衍生,用于进行同期、同比、环比等时间分析。

    此时,系统会先按照半累加规则计算对应时间范围内的指标结果,再基于结果进行时间衍生。

    例如,「账户余额同比」可以分别计算当前周期和去年同期各账户对应时间的余额,再比较两个周期的结果。

    4.6 使用限制

    创建半累加指标时,当前存在以下限制:

    • 指标的「汇总方式」不能为「明细值」;

    • 指标计算使用的字段及过滤条件需要基于同一个基准表,不支持跨多个基准表进行半累加计算(不能跨多个表)。

    附件列表


    主题: 模型指标
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    文
    档
    AI
    助
    手
    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问 或 前往服务平台 获取技术支持