select t2.join_time as dt, round(count(t1.uid = t2.uid) / count(*),2) as uv_left_rate from (select uid, min(date(in_time)) as join_time from tb_user_log group by uid ) t2 #每个用户uid及首次进入系统的时间 left join (select uid, date(in_time) as time from tb_user_log union select uid, date(out_time) as time from tb_user_log) t1 #每个用户活跃的时间 on t2.uid = t1.uid and date_add(t2.join_time,interval 1 day) = t1.time group by t2.join_time having year(dt) = 2021 and month(dt) = 11
也是看了题解才知道怎么做,使用连接的特性,在连接时指定一个连接条件,即加入系统的后一天的数据才能连接