65 lines
2.2 KiB
SQL
65 lines
2.2 KiB
SQL
-- 收入数据汇总
|
|
INSERT INTO ads.revenue_data ( relation_id,prodid,ds,ds_type,ds_name,channel,channel_type_name,merchant_name,platform_name,order_amount,money,active_num)
|
|
SELECT t1.relation_id
|
|
,t1.product_id prodid
|
|
,t.ds
|
|
,t.ds_type
|
|
,t.ds_name
|
|
,t1.channel_id channel
|
|
,t1.channel_name channel_type_name
|
|
,t1.merchant_name merchant_name
|
|
,t1.platform_name platform_name
|
|
,SUM(COALESCE(tt4.order_amount,0)) order_amount
|
|
,SUM(COALESCE(tt5.money,0)) money
|
|
,SUM(COALESCE(tt3.active_num,0)) active_num
|
|
FROM (
|
|
SELECT game_channel_id
|
|
,game_identity
|
|
,game_platform_id
|
|
,ds
|
|
,ds_type
|
|
,ds_name
|
|
FROM dwd.active_account_df
|
|
UNION
|
|
SELECT game_channel_id
|
|
,game_identity
|
|
,game_platform_id
|
|
,ds
|
|
,ds_type
|
|
,ds_name
|
|
FROM dwd.order_df
|
|
) t
|
|
INNER JOIN dim.game_product_relation t1
|
|
ON t.game_channel_id = t1.game_channel_id
|
|
AND t.game_identity = t1.game_identity
|
|
AND t.game_platform_id = t1.game_platform_id
|
|
LEFT JOIN dwd.active_account_df tt3
|
|
ON t.game_channel_id = tt3.game_channel_id
|
|
AND t.game_identity = tt3.game_identity
|
|
AND t.game_platform_id = tt3.game_platform_id
|
|
AND t.ds = tt3.ds
|
|
AND t.ds_type = tt3.ds_type
|
|
LEFT JOIN dwd.order_df tt4
|
|
ON t.game_channel_id = tt4.game_channel_id
|
|
AND t.game_identity = tt4.game_identity
|
|
AND t.game_platform_id = tt4.game_platform_id
|
|
AND t.ds = tt4.ds
|
|
AND t.ds_type = tt4.ds_type
|
|
left JOIN dwd.revenue_df tt5 on t1.relation_id=tt5.relation_id
|
|
AND tt4.ds=tt5.ds
|
|
and tt4.ds_type=tt5.ds_type
|
|
group by t1.relation_id
|
|
,t1.product_id
|
|
,t.ds
|
|
,t.ds_type
|
|
,t.ds_name
|
|
,t1.channel_id
|
|
,t1.channel_name
|
|
,t1.merchant_name
|
|
,t1.platform_name
|
|
|
|
ON CONFLICT (relation_id,channel,merchant_name,platform_name,ds,ds_type)
|
|
DO UPDATE SET prodid = EXCLUDED.prodid,order_amount = EXCLUDED.order_amount,money = EXCLUDED.money,
|
|
active_num = EXCLUDED.active_num
|
|
;
|