# 用户注册时间 WITH t1 AS ( SELECT TB.* ,T1.dt FROM tb_user_log TB LEFT JOIN ( SELECT t.uid, MIN(DATE(t.in_time)) AS dt FROM tb_user_log t GROUP BY t.uid ORDER BY dt ASC ) T1 ON TB.uid = T1.uid ), RT AS ( select t2.action_time ,count(distinct t2.uid) as dau from t1 left join ##用户活跃时间 ( select uid,date(in_time) as action_time from tb_user_log union select uid,date(out_time) as action_time from tb_user_log) t2 on t1.uid=t2.uid group by t2.action_time) select RT.*,ifnull(round(t3.dau/RT.dau,2),0) as uv_new_ratio from RT left join (select t2.action_time ,count(distinct t2.uid) as dau from t1 left join ( select uid,date(in_time) as action_time from tb_user_log union select uid,date(out_time) as action_time from tb_user_log) t2 on t1.uid=t2.uid WHERE t1.dt=t2.action_time group by t2.action_time) t3 on RT.action_time=t3.action_time ;