49 lines
1.7 KiB
SQL
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
|
|
; |