首页/数据/数仓建模速查/金额与数量字段命名后缀
分层与规范64 条

金额与数量字段命名后缀

金额用 _amt、数量用 _qty、计数用 _cnt;单位与币种在注释写明(元/分,CNY/USD),跨币种场景字段名带币种后缀避免求和串币。

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

金额与数量字段的命名约定

度量字段靠后缀自解释:金额用 _amt、数量用 _qty、计数用 _cnt,看到字段名就能判断它是钱、是件数,还是行数。单位与币种不能只靠后缀表达,必须写进字段注释(元还是分、CNY 还是 USD)。跨币种场景要给字段带币种后缀或分列存储,否则求和会把不同货币加在一起。

基本信息

金额后缀_amt,如 pay_amt、refund_amt
数量后缀_qty,如 item_qty
计数后缀_cnt,如 order_cnt
单位注释写明元或分,禁止同一字段混用
币种多币种加后缀或按币种分列
精度金额统一 DECIMAL(18,2)

典型使用场景

  • 指标开发:按后缀就能筛出所有金额字段,统一做单位一致性巡检
  • 跨源整合:把上游的分转换成本团队的元时,字段注释是唯一的单位依据,没有注释就只能靠抽样反推
  • 财务对账:金额与数量必须能区分开,_amt 与 _qty 混用会直接算错
  • 去重计数:order_cnt 要写明是去重订单数还是明细行数,二者在明细表里差距很大
  • 多币种经营:把 pay_amt 拆成 pay_amt_cny 与 pay_amt_usd,避免把不同货币加在一起

金额字段取数示例

金额字段取数示例
-- 度量聚合:金额求和、数量求和、行数计数
SELECT store_id,
       sum(pay_amt)  AS pay_amt,    -- 单位:元(注释与上游一致)
       sum(item_qty) AS item_qty,   -- 单位:件
       count(1)      AS order_cnt   -- 明细行数,非去重订单
FROM dwd_trade_order_di
WHERE dt = '2026-10-12'
GROUP BY store_id;

常用后缀对照

后缀含义示例注释要求
_amt金额pay_amt写明元或分
_qty数量item_qty写明件/个/千克
_cnt计数order_cnt写明是否去重
_rate比率refund_rate写明分子分母
_ts时间戳create_ts写明时区
金额字段优先统一到分做存储、展示时再除一百,可以彻底避开小数位的舍入争议;如果选择存元,就不要在同一链路里再出现存分的字段,两套单位并存迟早会串。
命名评审时按后缀做一次全表扫描:出现 _fee、_money、_value、_price 这类同义后缀混用的表,通常就是不同团队在不同时期各写各的,越早收敛越省事。
同一字段名在不同来源既存元又存分,求和结果差一百倍;这类事故在合并渠道数据时高发,且往往要等财务对账才被发现。

易错点

  • 金额单位不统一,BI 展示金额被放大或缩小一百倍
  • 用 _cnt 表示去重人数、用 _qty 表示订单数,下游按后缀推测含义必然算错
  • 多币种共用一个金额字段直接 sum,总额失去业务含义
  • 用 _num、_sum 这类自造后缀,字段语义无法被检索与巡检覆盖

数据来源与参考

  • Kimball《数据仓库工具箱(第3版)》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌