select a.dt,count(distinct a.uid) dau,round(count(distinct b.uid)/count(distinct a.uid),2)
from 
        (select uid,date(in_time) dt
        from tb_user_log
        union all
        select uid,date(out_time) dt
        from tb_user_log
        group by uid,dt
         ) a
left join
         (select uid,min(date(in_time)) dt
          from tb_user_log
          group by uid
         ) b
on a.uid=b.uid and a.dt=b.dt
group by a.dt
order by a.dt;