-- 作者:tianyu.chu
-- 日期:2026-05-10
-- 工单:(无)
-- 目的:用户 x 品类 x 日 交易主题宽表(kb/29 §2 dws_usr_user_trade_1d)
-- 状态:[草案]
-- 备注:粒度 (user_id, category, dt) 唯一(kb/29 §2.2);
--      来源 dwd_trd_order_pay_apd_d 单源(A3 锁定 1 期不做 refund,kb/29 §2.3);
--      dt 锚点 = DATE(payment_success_time) 业务时间分区,承袭 dwd(kb/29 §2.4);
--      回算 N=2 与 dwd 对齐(漂移连锁补偿,kb/93 ADR-09);
--      不冗余维度退化字段(1 期 scope 服务标签计算,kb/29 §1.3 触发条件再扩);
--      字段类型对齐 dwd(整数 BIGINT,金额 DECIMAL(20,4),kb/20 §8.4.1)

DROP TABLE IF EXISTS dws.dws_usr_user_trade_1d;

CREATE EXTERNAL TABLE IF NOT EXISTS dws.dws_usr_user_trade_1d (
    user_id                        BIGINT         COMMENT '用户 id (PK 一,源 dwd.user_id)',
    category                       STRING         COMMENT '叶子品类 (PK 二,源 dwd.category,DIM 已清洗权威源)',
    pay_order_cnt                  BIGINT         COMMENT '当日支付订单数 偏好次数口径 COUNT(DISTINCT order_id)',
    purchase_cnt                   BIGINT         COMMENT '当日支付份数 备用 SUM(purchase_cnt)',
    payable_amt_cny                DECIMAL(20,4)  COMMENT '当日 GMV SUM(payable_amt_cny)',
    pay_amt_cny                    DECIMAL(20,4)  COMMENT '当日 Net Revenue 偏好金额口径 SUM(pay_amt_cny)',
    trade_amt_cny                  DECIMAL(20,4)  COMMENT '当日订单交易金额 SUM(trade_amt_cny)',
    settle_amt_cny                 DECIMAL(20,4)  COMMENT '当日结算金额 SUM(settle_amt_cny)',
    merchant_discount_amt_cny      DECIMAL(20,4)  COMMENT '当日商家折扣 SUM(merchant_discount_amt_cny)',
    platform_discount_amt_cny      DECIMAL(20,4)  COMMENT '当日平台券折扣 SUM(platform_discount_amt_cny)',
    member_discount_amt_cny        DECIMAL(20,4)  COMMENT '当日会员折扣 SUM(member_discount_amt_cny)',
    act_discount_amt_cny           DECIMAL(20,4)  COMMENT '当日活动折扣 SUM(act_discount_amt_cny)',
    point_deduct_amt_cny           DECIMAL(20,4)  COMMENT '当日积分抵扣金额 SUM(point_deduct_amt_cny)',
    shipping_amt_cny               DECIMAL(20,4)  COMMENT '当日运费 SUM(shipping_amt_cny)',
    point                          BIGINT         COMMENT '当日消耗积分 SUM(point)',
    etl_time                       TIMESTAMP      COMMENT 'ETL 处理时间'
)
COMMENT '用户 x 品类 x 日 交易主题宽表'
PARTITIONED BY (dt STRING)
STORED AS ORC
LOCATION '/user/hive/warehouse/dws.db/dws_usr_user_trade_1d';
