with t1 as(
select
distinct uid, date(in_time) dt, min(date(in_time))over(partition by uid) new_dt
from
tb_user_log
union
select
distinct uid, date(out_time) dt, min(date(in_time))over(partition by uid) new_dt
from
tb_user_log
)
select
dt, count(*) dau, round(sum(if(dt=new_dt,1,0))/ count(*), 2) uv_new_ratio
from
t1
group by
dt
order by
dt asc;

京公网安备 11010502036488号