1. 合并in_ime 和 out_time 获得用户日志,UION 将用户的 in_time 和 out_time 转为日期格式,去重后得到每日活跃用户。
2.将用户日志与用户注册时间(min(in_time))进行合并,并通过if关键字判断当日活跃日期是否为注册日期
3计算DAU和新用户占比:根据日期进行分组,统计每日活跃用户数(DAU)和新用户比例(uv_new_ratio)
select
activate_date as dt,
count(distinct uid) as dau,
round(sum(if_register) / count(distinct uid),2) uv_new_ratio
from (
select a.uid, activate_date , reg_date, if(reg_date = activate_date, 1, 0) if_register
from (
select uid, date(in_time) activate_date from tb_user_log
union
select uid, date(out_time) activate_date from tb_user_log
) a
left join (select uid, min(date(in_time)) as reg_date from tb_user_log group by uid) b
on a.uid = b.uid
)c
group by activate_date
order by dt asc;



京公网安备 11010502036488号