首页/数据/数仓建模速查/头行金额分摊方法
维度与事实设计149 条

头行金额分摊方法

头级优惠/运费分摊到行:按金额比例(默认)或数量比例,尾差并入排序首行;分摊后行金额合计必须等于头级金额。

数仓建模速查数据更新于 2026-10-12
方法按金额/数量比例
尾差并入排序首行
校验行合计 = 头金额

按金额分摊

按金额分摊
SELECT i.order_id, i.line_no,
       i.line_amt
         + o.discount_amt * i.line_amt / sum(i.line_amt) OVER (PARTITION BY i.order_id)
         AS alloc_line_amt
FROM fact_order_item i
JOIN fact_order o ON o.order_id = i.order_id;
分摊方法写入口径库;换方法等同口径变更,需要版本。

易错点

  • 分摊存在小数尾差,行合计与头不一致
  • 退货行不参与分摊,退款金额对不上

数据来源与参考

  • 交易数仓实践:头行分摊
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌