复合指标怎么建
复合指标由多个已登记的原子或派生指标按公式计算,例如毛利率等于收入减成本再除以收入。关键约束是分子分母必须以指标编码引用,而不是直接写裸字段表达式——这样口径调整时复合指标自动跟随,也不会出现两处算法长期不一致。
基本信息
| 构成 | 多个已登记指标之间的运算 |
|---|---|
| 示例 | 毛利除以收入、人均下单次数 |
| 约束 | 分子分母必须引用指标编码 |
| 兜底 | 分母为零要用 nullif 或默认值保护 |
| 落点 | 指标平台按公式编排,或物化为结果表 |
典型使用场景
- 比率类指标:毛利率、转化率、留存率,由两个基础指标相除得到
- 人均与单均指标:金额除以人数或订单数
- 差值指标:收入减成本得到毛利额
- 综合评分:多个指标加权求和得到健康度分数
- 跨域组合:交易与流量两个域的指标做比,例如客单转化效率
复合指标实现
复合指标实现
-- 复合指标:毛利率等于(收入 - 成本)除以收入,引用指标编码
SELECT
mi.dt,
mi.v AS income COMMENT '收入指标值',
mc.v AS cost COMMENT '成本指标值',
(mi.v - mc.v) / nullif(mi.v, 0) AS gross_margin
FROM metric_value mi
JOIN metric_value mc
ON mc.metric_code = 'COST'
AND mc.dt = mi.dt
AND mc.dim_key = mi.dim_key
WHERE mi.metric_code = 'INCOME'
AND mi.dt = '2026-10-11';两类实现的取舍
| 实现方式 | 做法 | 适用场景 |
|---|---|---|
| 查询期计算 | 报表查询时按公式实时计算 | 指标不多、口径仍在调整 |
| 落库物化 | 调度先产出复合指标结果表 | 指标多、查询量大 |
| 混合方式 | 基础指标物化,比率查询期算 | 分子分母口径独立变化时最稳 |
复合指标不要反过来参与原子指标的聚合:它的可加性由公式决定,比率类不可加,直接上卷会得到没有业务含义的加权结果。
分母为零的处理要在指标定义里明确:取空值、显示为零还是不展示,交给每个报表各自处理就会出现三种口径。