首页/数据/数仓建模速查/可加度量与可加性判断
维度与事实设计149 条

可加度量与可加性判断

跨所有维度都能求和的度量(金额、数量)为可加度量;事实表设计优先选择可加度量,便于任意维度上卷。

数仓建模速查数据更新于 2026-10-13

可加度量与可加性判断

可加度量指在任意维度上求和都有意义的量:订单金额、商品件数、支付笔数。事实表设计应优先选择可加度量,因为只有它们能自由上卷到任意维度组合。判断方法是对每个可用维度问一句「加总讲不讲得通」——讲不通的就是半可加或不可加,需要在设计时单独标注并配套口径。三类度量混存而不标注,是口径混乱的主要来源。

基本信息

定义在任意维度上求和都有业务意义
典型例子订单金额、商品件数、支付笔数
上卷方式直接 sum,无需额外口径说明
设计要求优先存可加度量,比率存分子分母
标注要求半可加与不可加必须显式标注口径

典型使用场景

  • 指标口径设计:先判定可加性,再决定存储与计算方式
  • 上卷安全:报表任意维度分组求和都不会出错
  • 预聚合准备:只有可加度量能在聚合表里直接 sum
  • 口径评审:评审时逐度量标注属于可加、半可加还是不可加
  • 对账基础:可加度量是跨系统金额对账的直接依据
  • 指标层复用:不可加指标由可加分子分母在查询端组合

三类度量对照

三类度量对照
-- 可加:任意维度分组求和都有意义
SELECT region, sum(amt) AS amt FROM fact_order GROUP BY region;

-- 半可加:跨账户可加、跨时间不可加,需求明确口径
SELECT account_id, balance FROM fact_account_balance_daily
WHERE  dt = '2026-10-11';    -- 期末余额

-- 不可加:先汇总分子分母再相除
SELECT sum(pay_amt) / count(distinct order_id) AS aov FROM fact_order;

三类度量对照

类型例子汇总方式
可加金额、件数、次数直接 sum,任意维度成立
半可加余额、库存、人数除时间外可 sum,跨时间取期末或日均
不可加比率、单价、占比先汇总分子分母再相除
派生同比增速、环比增速对已算好的指标做运算,需固定基准
设计度量时先按可加性分类,再决定它落在事实表、快照表还是指标层。把半可加与不可加度量混进事实表的求和列,短期看不出问题,等到有人按错误方式上卷、报表数字被对外引用时才暴露。

易错点

  • 把比率当可加度量存储:下游直接 sum 或 avg,得到无意义数字
  • 半可加度量未标注口径:期末值与日均值混用,同一指标两个数
  • 混合口径度量同列存储(有含税有未含税):使用方无法区分,汇总即错
  • 在聚合表里预存不可加指标:上卷时自动累加,结果错误且难以察觉
  • 只考虑当前报表需求:未评估任意维度上卷是否成立,后续无法扩展

数据来源与参考

  • 数据仓库工具箱:度量
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌