#方法一:成功了
#思路:1、找出用户名和他的第一次登录日期,计算出理论上的第二次登陆日期 
#     2、找出用户名和他实际的第二次登陆日期
#     3、第一步左连接第二步,链接条件:“用户名相等”和“第一步的2次理论登录=第二步的2次实际登录”
#     4、计算
#select  round(count(distinct t2.user_id)/count(t1.user_id),3)
#from
#(
#select user_id,
   #    min(date),
     #  date_add(min(date),interval 1 day) as min2
      # from 
       #login
       #group by user_id
      # ) t1
#left outer join
#(
#select user_id ,
 #      min(date) min3
   #    from login
#   where (user_id,date) not in (select user_id,min(date) from login group by user_id)
 #      group by user_id
#) t2
#on t1.user_id=t2.user_id and t1.min2=t2.min3


#方法二:也成功了
#思路:1、先找用户名和第一次登录的日期 2、再找用户名和他的第二次登录日期 3、第一步左连接第二步 4、计算
select 
round(count(d2)/count(d1),3) p
from
(
select user_id,
min(date) d1
from login
group by user_id
)b
left outer join
############################
#此处为找用户名和他的第二次登录日期#
(
select user_id,date d2
from 
login
where (user_id,date) in
(#这里是理论上的用户第二次登录日期,表里不一定有,所以才需要在外面查询一次
  select user_id,
  date_add(min(date),interval 1 day)
  from login
  group by user_id 
  #
) 
) c
############################
on b.user_id=c.user_id