这题比较简单,话不多说,上代码!优雅~

<参考代码>
SELECT 
    dt,count(distinct uid)dau,round(sum(if(dt=min_date,1,0))/count(distinct uid),2)uv_new_ratio
FROM
    (SELECT uid,date(in_time) dt FROM tb_user_log
    UNION
    SELECT uid,date(out_time) dt FROM tb_user_log)a
    LEFT JOIN
    (SELECT uid,min(date(in_time)) min_date FROM tb_user_log GROUP BY uid)b
    USING(uid)
GROUP BY dt
ORDER BY dt;
<运行结果>