select dt, count(uid) as dau, round(avg(newd=dt),2) as uv_new_ratio from ( select uid,date(in_time) as dt from tb_user_log union select uid,date(out_time) as dt from tb_user_log ) as t1 join (select uid,min(date(in_time)) as newd from tb_user_log group by uid ) as t2 using(uid) group by dt order by dt
avg(newd=dt) 等同于avg(if(newd=dt,1,0))