data_job/sql/dwd_before/order_user_df.sql
2025-03-04 10:24:36 +08:00

49 lines
1.7 KiB
SQL

-- 取当天推送的订单数据里面看订单日期 重新汇总统计
WITH data_tmp AS
(
SELECT t2.relation_id
,t2.product_id prodid
,t2.game_channel_id
,t2.game_identity
,t2.game_platform_id
,t1.ds
FROM ods.ORDER t1
INNER JOIN dim.game_product_relation t2
ON t1.channel_id = t2.game_channel_id
AND t1.game_identity = t2.game_identity
AND t1.platform_id = t2.game_platform_id
WHERE t1.receive_time BETWEEN '${biz-date}' AND '${intra-day}'
GROUP BY t2.relation_id
,t2.product_id
,t2.game_channel_id
,t2.game_identity
,t2.game_platform_id
,t1.ds
)
INSERT INTO "dwd"."order_user_df" (relation_id,prodid,game_channel_id,game_identity,game_platform_id,user_id,ds,pay_amount,ds_date)
SELECT t1.relation_id
,t1.prodid
,t1.game_channel_id
,t1.game_identity
,t1.game_platform_id
,t2.user_id
,t1.ds ds
,sum(pay_amount) pay_amount
,'${biz-date}' ds_date
FROM data_tmp t1
INNER JOIN ods.ORDER t2
ON t1.game_channel_id = t2.channel_id
AND t1.game_identity = t2.game_identity
AND t1.game_platform_id = t2.platform_id
and t1.ds=t2.ds
group by t1.relation_id
,t1.prodid
,t1.game_channel_id
,t1.game_identity
,t1.game_platform_id
,t2.user_id
,t1.ds
ON CONFLICT (relation_id, user_id, ds)
DO UPDATE SET prodid = EXCLUDED.prodid,game_channel_id = EXCLUDED.game_channel_id,game_identity = EXCLUDED.game_identity,game_platform_id = EXCLUDED.game_platform_id,
ds = EXCLUDED.ds,user_id = EXCLUDED.user_id,pay_amount = EXCLUDED.pay_amount,ds_date = EXCLUDED.ds_date
;