142 lines
3.7 KiB
MySQL
142 lines
3.7 KiB
MySQL
|
--bizdate 20250431 bizmonth 20250401 bizmonth
|
||
|
|
||
|
CREATE TABLE datasci.ads_996eco_index_ltv_d (
|
||
|
index_type text,
|
||
|
data_day text,
|
||
|
is_box text,
|
||
|
acc_count bigint,
|
||
|
ltv0 bigint,
|
||
|
ltv1 bigint,
|
||
|
ltv2 bigint,
|
||
|
ltv3 bigint,
|
||
|
ltv4 bigint,
|
||
|
ltv5 bigint,
|
||
|
ltv6 bigint,
|
||
|
ltv7 bigint,
|
||
|
ltv8 bigint,
|
||
|
ltv9 bigint,
|
||
|
ltv10 bigint,
|
||
|
ltv11 bigint,
|
||
|
ltv12 bigint,
|
||
|
ltv13 bigint,
|
||
|
ltv14 bigint,
|
||
|
ltv15 bigint,
|
||
|
ltv16 bigint,
|
||
|
ltv17 bigint,
|
||
|
ltv18 bigint,
|
||
|
ltv19 bigint,
|
||
|
ltv20 bigint,
|
||
|
ltv21 bigint,
|
||
|
ltv22 bigint,
|
||
|
ltv23 bigint,
|
||
|
ltv24 bigint,
|
||
|
ltv25 bigint,
|
||
|
ltv26 bigint,
|
||
|
ltv27 bigint,
|
||
|
ltv28 bigint,
|
||
|
ltv29 bigint,
|
||
|
ltv30 bigint,
|
||
|
ltv31 bigint,
|
||
|
ltv45 bigint,
|
||
|
ltv60 bigint,
|
||
|
ltv90 bigint,
|
||
|
ltv120 bigint
|
||
|
);
|
||
|
|
||
|
DELETE FROM datasci.ads_996eco_index_ltv_d WHERE 1=1;
|
||
|
|
||
|
--------------------
|
||
|
|
||
|
with retention_new_acc as
|
||
|
(
|
||
|
select
|
||
|
t1.appid,t1.app_name,t1.channel,t1.event_time,t1.user_id,t1.ds::date as new_acc_dt,coalesce(t2.user_flag,'非盒子用户') as user_flag
|
||
|
from
|
||
|
(
|
||
|
select
|
||
|
account,appid,app_name,channel,event_time,user_id,ds,row_number() over(partition by user_id order by event_time asc) as rn
|
||
|
from
|
||
|
(
|
||
|
select
|
||
|
appid,gm.name as app_name,account,name_abbr,channel,event_time,user_id,ds
|
||
|
from public.ods_newly_account acc
|
||
|
inner join
|
||
|
(
|
||
|
select id,name,bind_game_id,a.account,b.name_abbr
|
||
|
from public.gm_apply a
|
||
|
left join public.dim_gm_info b on a.account=b.account
|
||
|
where bind_game_type=1
|
||
|
) gm on acc.appid=gm.id
|
||
|
) t
|
||
|
) t1
|
||
|
left join datasci.dws_plt_newly_account_d t2 on t1.user_id=t2.user_id
|
||
|
where rn=1
|
||
|
and t1.ds between '${hisdate}' and '${bizdate}'
|
||
|
--and user_id='1419067566'
|
||
|
),
|
||
|
retention_active_detail as
|
||
|
(
|
||
|
select
|
||
|
ds::date as dt,user_id
|
||
|
from public.ods_active_account t1
|
||
|
inner join
|
||
|
(
|
||
|
select id,name,bind_game_id
|
||
|
from public.gm_apply
|
||
|
where bind_game_type=1
|
||
|
) t2 on t1.appid=t2.id
|
||
|
where t1.ds>='${hisdate}' and t1.ds<=to_char(dateadd('${bizdate}'::date,31,'dd'),'yyyymmdd')
|
||
|
group by
|
||
|
ds::date,user_id
|
||
|
),
|
||
|
retention_rd as
|
||
|
(
|
||
|
select
|
||
|
user_flag,appid,app_name,channel,event_time,t1.user_id,new_acc_dt,t2.dt as act_dt,t2.dt-t1.new_acc_dt as rd
|
||
|
from retention_new_acc t1
|
||
|
left join retention_active_detail t2 on t1.user_id=t2.user_id
|
||
|
--left join 加玩法版本啥的
|
||
|
where t2.dt-t1.new_acc_dt in (0,1,7,14,30,60,90,180)
|
||
|
--t1.user_id='1419067566'
|
||
|
)
|
||
|
--渠道留存
|
||
|
SELECT
|
||
|
'is_box_ltv' index_type,
|
||
|
t1.new_acc_dt data_day,
|
||
|
t1.user_flag is_box,
|
||
|
t1.new_user_num acc_count,
|
||
|
t2.ret_1 ltv1,
|
||
|
ret_7 ltv7,
|
||
|
ret_14 ltv14,
|
||
|
ret_30 ltv30,
|
||
|
ret_60 ltv60,
|
||
|
ret_90 ltv90,
|
||
|
ret_180 ltv180
|
||
|
FROM
|
||
|
(
|
||
|
select
|
||
|
user_flag ,new_acc_dt,uniq(user_id) as new_user_num
|
||
|
from retention_rd
|
||
|
where rd=0
|
||
|
group by
|
||
|
user_flag,new_acc_dt
|
||
|
) t1
|
||
|
left join
|
||
|
(
|
||
|
select
|
||
|
user_flag,new_acc_dt,
|
||
|
uniq(case when rd=1 then user_id else null end) as ret_1,
|
||
|
uniq(case when rd=7 then user_id else null end) as ret_7,
|
||
|
uniq(case when rd=14 then user_id else null end) as ret_14,
|
||
|
uniq(case when rd=30 then user_id else null end) as ret_30,
|
||
|
uniq(case when rd=60 then user_id else null end) as ret_60,
|
||
|
uniq(case when rd=90 then user_id else null end) as ret_90,
|
||
|
uniq(case when rd=180 then user_id else null end) as ret_180
|
||
|
from retention_rd
|
||
|
where rd>0
|
||
|
group by
|
||
|
user_flag,new_acc_dt
|
||
|
) t2 on t1.new_acc_dt=t2.new_acc_dt and t1.user_flag=t2.user_flag
|
||
|
;
|
||
|
|