DROP TABLE IF EXISTS wanshifu_dw.ai_training_order_bidding_snapshot; CREATE TABLE IF NOT EXISTS wanshifu_dw.ai_training_order_bidding_snapshot ( global_order_trace_id STRING COMMENT '订单全局id', order_no STRING COMMENT '订单编号', order_submit_time STRING COMMENT '订单创建时间', order_cancel_time STRING COMMENT '订单取消时间', goods_level_1_name STRING COMMENT '订单商品一级类目名称', order_goods_cnt BIGINT COMMENT '订单商品数量', order_serve_type_name STRING COMMENT '订单服务类型名称', order_business_line_name STRING COMMENT '订单业务线名称', order_business_line_type STRING COMMENT '订单业务线类型', order_appoint_type_name STRING COMMENT '指派类型', order_etp_flag STRING COMMENT '下单总包标识:0不是,1是', user_id STRING COMMENT '用户id', user_name STRING COMMENT '用户名称', address STRING COMMENT '经营详情地址', business_full_name STRING COMMENT '企业全称', company_type STRING COMMENT '企业类型(e_commerce:电商、offline_store:线下门店、factory:工厂、logistics:物流)', user_type STRING COMMENT '用户类型(1:普通 2:企业 3:新版企业用户 4:小程序用户 5:个人)', order_onsite_sign_time STRING COMMENT '上门时间', mst_serve_complete_last_time STRING COMMENT '完工时间', goods_level_2_name STRING COMMENT '订单商品二级类目名称', goods_level_3_name STRING COMMENT '订单商品三级类目名称', order_total_amount DOUBLE COMMENT '订单总金额', order_unit_price DOUBLE COMMENT '订单单价', is_urgent_flag STRING COMMENT '是否加急', city_name STRING COMMENT '城市名称', offer_mst_cnt BIGINT COMMENT '报价量(人次)', view_mst_cnt BIGINT COMMENT '查看量(人次)', fifth_offer_duration_second BIGINT COMMENT '满5人报价时长(第5人报价时间 - 下单时间)', tenth_offer_duration_second BIGINT COMMENT '满10人报价时长(第10人报价时间 - 下单时间)', attention_cnt BIGINT COMMENT '商家师傅关注数', merchant_total_orders BIGINT COMMENT '商家下的总订单量', merchant_total_aftersales BIGINT COMMENT '商家产生的总售后单量', ignore_cnt BIGINT COMMENT '商家被拉黑次数', buyer_note STRING COMMENT '订单备注' ) STORED AS ALIORC TBLPROPERTIES ( 'comment' = 'AI训练用报价招标订单快照表(非分区表)' ); INSERT OVERWRITE TABLE wanshifu_dw.ai_training_order_bidding_snapshot SELECT t1.global_order_trace_id -- 订单全局id ,t1.order_no -- 订单编号 ,t1.order_submit_time -- 订单创建时间 ,t1.order_cancel_time -- 订单取消时间 ,t3.goods_level_1_name -- 订单商品一级类目名称 ,CAST(t1.order_goods_cnt AS BIGINT) AS order_goods_cnt -- 订单商品数量 ,t1.order_serve_type_name -- 订单服务类型名称 ,t1.order_business_line_name -- 订单业务线名称 ,t1.order_business_line_type -- 订单业务线类型 ,t1.order_appoint_type_name --指派类型 ,t1.order_etp_flag -- 下单总包标识:0不是,1是 ,t1.user_id -- 用户id ,t2.user_name -- 用户名称 ,t2.address -- 经营详情地址 ,t2.business_full_name -- 企业全称 ,t2.company_type -- 企业类型(e_commerce:电商、offline_store:线下门店、factory:工厂、logistics:物流) ,t2.user_type -- 用户类型(1:普通 2:企业 3:新版企业用户 4:小程序用户5:个人) ,order_onsite_sign_time --上门时间 ,mst_serve_complete_last_time --完工时间 ,t3.goods_level_2_name -- 订单商品二级类目名称 ,t3.goods_level_3_name -- 订单商品三级类目名称 --,init_order_amt --初始主订单金额 --,init_total_amt --初始订单总金额(主订单+子订单) --,settle_amt --订单结算金额(服务费用) ,t9.init_serve_fee as order_total_amount --订单总金额 ,(t9.init_serve_fee/t1.order_goods_cnt) as order_unit_price --订单单价 --,t4.order_label --订单种类(加急单、夜间单等等) ,CASE WHEN t4.order_label LIKE '%加急%' THEN '是' ELSE '否' END AS is_urgent_flag --是否加急 ,t10.city_name --城市名称 ,NVL(t5.offer_mst_cnt,0) AS offer_mst_cnt --报价量(人次) ,NVL(t6.view_mst_cnt,0) AS view_mst_cnt --查看量(人次) ,NVL(t7.fifth_offer_duration_second,0) AS fifth_offer_duration_second --满5人报价时长(第5人报价时间 - 下单时间) ,NVL(t7.tenth_offer_duration_second,0) AS tenth_offer_duration_second --满10人报价时长(第10人报价时间 - 下单时间) ,NVL(t8.attention_cnt,0) AS attention_cnt --商家师傅关注数 ,merchant_total_orders --- 商家下的总订单量 ,merchant_total_aftersales --- 商家产生的总售后单量 ,ignore_cnt --商家被拉黑次数 ,t10.buyer_note -- 订单备注 FROM wanshifu_dw.dws_order_d t1 LEFT JOIN wanshifu_dw.dim_usr_info_v t2 ON t1.user_id = t2.user_id JOIN ( SELECT t1.global_order_trace_id ,t1.goods_level_1_name ,t1.goods_level_2_name ,t1.goods_level_3_name FROM wanshifu_dw.dwm_order_goods_info_d_v t1 JOIN ( SELECT global_order_trace_id FROM wanshifu_dw.dwm_order_goods_info_d_v WHERE stat_date IS NOT NULL GROUP BY global_order_trace_id HAVING COUNT(*) = 1 ) t2 ON t1.global_order_trace_id = t2.global_order_trace_id WHERE stat_date IS NOT NULL ) t3 --去掉多类目商品 ON t1.global_order_trace_id = t3.global_order_trace_id LEFT JOIN ( SELECT global_order_trace_id ,CONCAT_WS(',',COLLECT_SET(business_type_name)) AS order_label FROM wanshifu_dw.dwd_bas_accounting_trade_settlement_flow_fee_detail_d_v WHERE etl_date >= '20250101' AND business_type_code IN ('emergency_order_settlement','fee_subsidy_settlement','fittings_order_settlement','night_order_settlement','order_settlement','price_diff_subsidy_settlement','rate_award_settlement','service_satisfy_award_settlement','toc_order_settlement') GROUP BY global_order_trace_id ) t4 ON t1.global_order_trace_id = t4.global_order_trace_id LEFT JOIN ( SELECT global_order_trace_id ,COUNT(DISTINCT master_id) AS offer_mst_cnt FROM wanshifu_dw.dwd_mst_order_offer_price_d_v WHERE etl_date >= '20250101' GROUP BY global_order_trace_id ) t5 ON t1.global_order_trace_id = t5.global_order_trace_id LEFT JOIN ( SELECT global_order_trace_id ,COUNT(DISTINCT IF(first_view_time IS NOT NULL,master_id,NULL)) AS view_mst_cnt FROM wanshifu_dw.dwm_mst_order_push_d WHERE etl_date >= '20250101' GROUP BY global_order_trace_id ) t6 ON t1.global_order_trace_id = t6.global_order_trace_id LEFT JOIN ( SELECT global_order_trace_id ,SUM(IF(rn = 5,DATEDIFF(offer_time,order_submit_time,'ss'),0)) AS fifth_offer_duration_second ,SUM(IF(rn = 10,DATEDIFF(offer_time,order_submit_time,'ss'),0)) AS tenth_offer_duration_second FROM ( SELECT global_order_trace_id ,order_submit_time ,offer_time ,ROW_NUMBER() OVER (PARTITION BY global_order_trace_id ORDER BY offer_time ASC ) rn FROM wanshifu_dw.dwd_mst_order_offer_price_d_v WHERE etl_date >= '20250101' ) WHERE rn IN (5,10) GROUP BY global_order_trace_id ) t7 ON t1.global_order_trace_id = t7.global_order_trace_id LEFT JOIN ( SELECT account_id ,COUNT(master_id) AS attention_cnt --商家师傅关注数 FROM wanshifu_dw.ods_mst_info_mst_interaction_d_v WHERE etl_date = '20250618' --此日期不可修改 AND attention_status = '1' GROUP BY account_id ) t8 ON t1.user_id = t8.account_id LEFT JOIN ( SELECT account_id ,COUNT(master_id) AS ignore_cnt --商家被拉黑次数 FROM wanshifu_dw.ods_mst_info_mst_interaction_d_v WHERE etl_date = '20250618' --此日期不可修改 AND ignore_his_order_status = '1' GROUP BY account_id ) t88 ON t1.user_id = t88.account_id LEFT JOIN wanshifu_dw.dwd_usr_order_trade_info t9 on t9.global_order_trace_id = t1.global_order_trace_id LEFT JOIN wanshifu_dw.dim_order_info_v t10 on t10.global_order_trace_id = t1.global_order_trace_id left JOIN ( SELECT user_id,COUNT(distinct global_order_trace_id) as merchant_total_orders FROM wanshifu_dw.dws_order_d t1 WHERE SUBSTR(t1.stat_date,1,6) BETWEEN '202501' AND '202506' AND t1.order_cancel_time IS NULL and t1.mst_serve_complete_last_time is not null GROUP BY user_id ) a on t1.user_id = a.user_id left JOIN ( SELECT tt2.user_id,count(distinct tt1.global_order_trace_id) as merchant_total_aftersales FROM ( SELECT global_order_trace_id FROM wanshifu_dw.dwd_iop_work_order_work_order_infos_v WHERE work_order_type IN ('complaint','secondline') --投诉,二线 AND TO_CHAR(work_order_create_time,'yyyymmdd') >= '20250101' and TO_CHAR(work_order_create_time,'yyyymmdd') <= '20250630' GROUP BY global_order_trace_id UNION ALL SELECT global_order_trace_id FROM wanshifu_dw.dwm_order_arbitration_info --仲裁 WHERE TO_CHAR(create_time,'yyyymmdd') >= '20250101' AND TO_CHAR(create_time,'yyyymmdd') <= '20250630' GROUP BY global_order_trace_id ) tt1 LEFT JOIN wanshifu_dw.dim_order_info_v tt2 on tt1.global_order_trace_id = tt2.global_order_trace_id GROUP BY tt2.user_id ) b on t1.user_id = b.user_id WHERE SUBSTR(t1.stat_date,1,6) BETWEEN '202501' AND '202506' AND t1.order_goods_lv1_name IN ('家具') AND t1.order_business_line_type = 'tob' AND t1.order_etp_flag = '0' AND t1.order_cancel_time IS NULL AND t1.order_appoint_type_name = '报价招标' AND t1.order_2nd_onsite_time IS NULL --去掉二次上门 and t10.city_name IN ('西安市','南京市','天津市','成都市','珠海市','佛山市','合肥市','青岛市','郑州市','长沙市','武汉市','宁波市','苏州市','东莞市','重庆市') ;