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;