xbackend/sql/总览.sql
2021-07-22 11:14:15 +08:00

58 lines
2.8 KiB
SQL

with 'Android' as os,
'gmhdtt' as owner,
'2021-07-11' as start_date,
'2021-07-20' as end_date
select date,
`#bundle_id`,
active_num,
new_account_num,
new_account_array,
money,
recharge_account_num,
round(recharge_account_num * 100 / active_num, 2) as pay_rate,
round(money / recharge_account_num, 2) as arppu,
round(money / active_num, 2) as arpu,
arrayMap(x-> x.2, arrayFilter(x->has(new_account_array, x.1), bid_money)) as new_recharge,
arraySum(new_recharge) as new_money,
length(new_recharge) as new_pay_num,
round(new_pay_num*100/new_account_num,2) as new_pay_rate,
round(new_money*100/new_pay_num,2) as new_arppu,
round(new_money*100/new_account_num,2) as new_arpu
from (select date,
`#bundle_id`,
active_num,
new_account_num,
new_account_array,
money,
recharge_account_num
from (select date, `#bundle_id`, active_num, new_account_num, new_account_array
from (select date, `#bundle_id`, sum(num) as active_num
from zhengba.active_account
where date >= start_date
and date <= end_date
and `#os` = os
and owner_name = owner
group by date, `#bundle_id`) as active_tbl
left join (select date,
`#bundle_id`,
sum(num) as new_account_num,
flatten(groupArray(account)) as new_account_array
from zhengba.new_account
where date >= start_date
and date <= end_date
and `#os` = os
and owner_name = owner
group by date, `#bundle_id`) as new_account_tbl
on active_tbl.date = new_account_tbl.date and
active_tbl.`#bundle_id` = new_account_tbl.`#bundle_id`) as tb1
left join (select date, `#bundle_id`, sum(money) as money, sum(account_num) as recharge_account_num
from zhengba.recharge_game
where date >= start_date
and date <= end_date
and `#os` = os
and owner_name = owner
group by date, `#bundle_id`) as recharge_tbl
on recharge_tbl.date = tb1.date and tb1.`#bundle_id` = recharge_tbl.`#bundle_id`) as tb2
left join zhengba.new_account_recharge as tb3 on tb2.date = tb3.date
order by date desc