当前位置: 首页 > news >正文

SQL_牛客网_SQL264_求每个登陆日期的次日留存率

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

牛客每天有很多人登录,请你统计一下牛客每个日期新用户的次日留存率。
有一个登录(login)记录表,简况如下:
id user_id    client_id date
1    2    1    2020-10-12
2    3    2    2020-10-12
3    1    2    2020-10-12
4    2    2    2020-10-13
5    1    2    2020-10-13
6    3    1    2020-10-14
7    4    1    2020-10-14
8    4    1    2020-10-15
第1行表示user_id为2的用户在2020-10-12使用了客户端id为1的设备登录了牛客网,因为是第1次登录,所以是新用户
......
第4行表示user_id为2的用户在2020-10-13使用了客户端id为2的设备登录了牛客网,因为是第2次登录,所以是老用户
......
最后1行表示user_id为4的用户在2020-10-15使用了客户端id为1的设备登录了牛客网,因为是第2次登录,所以是老用户

请你写出一个sql语句查询每个日期新用户的次日留存率,结果保留小数点后面3位数(3位之后的四舍五入),并且查询结果按照日期升序排序,上面的例子查询结果如下:
date    p
2020-10-12    0.667
2020-10-13    0.000
2020-10-14    1.000
2020-10-15    0.000

查询结果表明:
2020-10-12登录了3个(user_id为2,3,1)新用户,2020-10-13,只有2个(id为2,1)登录,故2020-10-12新用户次日留存率为2/3=0.667;
2020-10-13没有新用户登录,输出0.000;
2020-10-14登录了1个(user_id为4)新用户,2020-10-15,user_id为4的用户登录,故2020-10-14新用户次日留存率为1/1=1.000;
2020-10-15没有新用户登录,输出0.000;
(注意:sqlite里查找某一天的后一天的用法是:date(yyyy-mm-dd, '+1 day'),sqlite里1/2得到的不是0.5,得到的是0,只有1*1.0/2才会得到0.5)
 

http://www.lryc.cn/news/164903.html

相关文章:

  • Hive 基础知识
  • 【数据结构】树的基础知识及三种存储结构
  • ABB 3BHB003688R0101接口模块
  • 精简 jre 涉坑记录
  • Java程序员学习算法路线规划总结
  • 火山引擎 ByteHouse:两个关键技术,揭秘 OLAP 引擎中的数据导入技术
  • 深挖“范围经济”穿越产业周期:TCL电子持续繁荣的密码
  • Elasticsearch:使用 ESRE 和生成式 AI 了解 TLS 日志错误
  • Swing程序设计(3)JDialog窗体
  • 类和对象(1)
  • 学会用命令行创建uni-app项目并用vscode开放项目
  • java.lang.ClassCastException: android.os.BinderProxy cannot be cast to ...
  • AIGC(生成式AI)试用 3 -- 专业主题
  • rsyslog-日志管理 logrotate-日志轮转
  • 类和对象续
  • SpringCloud:Feign实现微服务之间相互请求
  • LeetCode 1359. Count All Valid Pickup and Delivery Options【动态规划,组合数学】1722
  • [杂谈]-从硬件角度理解二进制数
  • Fast-DDS 服务发现简要概述
  • 基于spingboot的websocket订阅、广播、多人聊天室示例
  • Linux mac Windows三系统 局域网文件共享方法
  • Java——比较器
  • 【数据结构】初识泛型
  • 代码随想录--哈希--有效的字母异位词
  • MySQL——数据的增删改
  • 云服务器与http服务器
  • golang教程 beego框架笔记一
  • 【深度学习】Mini-Batch梯度下降法
  • AI项目六:WEB端部署YOLOv5
  • 敲代码常用快捷键