题解 | #牛客每个人最近的登录日期(三)#

牛客每个人最近的登录日期(三)

http://www.nowcoder.com/practice/16d41af206cd4066a06a3a0aa585ad3d

1.获得总用户数
select count(distinct user_id) from login

2.获得每位用户第二次登录的理论时间next_date,t1表
select user_id, DATE_ADD(min(date),INTERVAL 1 DAY) next_date
from login
group by user_id;t1

3.用user_id连接原表和t1表,计数原表中date中存在next_date时的user_id的个数
select count(distinct t1.user_id)
from login l1
join (select user_id, DATE_ADD(min(date),INTERVAL 1 DAY) next_date
from login
group by user_id )t1
on l1.user_id=t1.user_id
where l1.date=t1.next_date

4.将第3步的值除以第1步的值,结果保留三位小数
select round(count(distinct t1.user_id)/(select count(distinct user_id) from login),3)
from login l1
join (select user_id, DATE_ADD(min(date),INTERVAL 1 DAY) next_date
from login
group by user_id )t1
on l1.user_id=t1.user_id
where l1.date=t1.next_date

全部评论

相关推荐

链接
海梨花:我说话难听,你这简历跟没写没啥区别,搜搜别人的简历,用心写,不要随随便便就结束了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客41406533...:回答他在课上学,一辈子待在学校的老教授用三十年前的祖传PPT一字一句的讲解,使用谭浩强红皮书作为教材在devc++里面敲出a+++++a的瞬间爆出114514个编译错误来学这样才显得专业
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务