-- 新登录用户的次留 -- 1.新登录用户 -- 可以拿到user的单一列表 -- 用user的单一列表查找第二日登录, 第二次登录存在则为成功次留,记录为1;找不到第二次登录则记录为零(注意是第二日登录,不是第二次登录) -- 1.找用户的单一列表 -- 2.左连接login 找用户的第二次登录的的记录id,order by 之后用limit函数 -- 3.转换成可计算的数值,case -- 4.计算次留


select    
round(-- round函数用于取到小数位后3位
(
SELECT count(*)
FROM
(
SELECT
l1.user_id,l1.date
FROM login l1
where date=(SELECT
min(DATE_ADD(date,interval 1 day))
FROM login l2 where l1.user_id=l2.user_id -- 相关子查询,查找l1的用户在第一次登录的后一天的登录
            group by user_id)-- 新用户第二日登录
) as t1 -- 第二日登录的用户数
)

/

(SELECT count(*) FROM (SELECT DISTINCT user_id from login) t2)*1.000-- 整数转化成浮点数
,3)-- 用户的单一列表