SQL校招社招刷题系列之注册登录信息查询

前四篇文章我们学习了
SQL校招社招刷题系列之投资信息查询
SQL校招社招刷题系列之学生成绩信息查询
SQL校招社招刷题系列之交叉表的制作
SQL校招社招刷题系列之比赛排列组合

们来通过注册登录信息来求出用户次日留存率

源表

现有两张表,分别为register和login

login登录表

idlogin_time
100012019/6/1 16:26
100012019/6/2 9:26
100012019/6/2 15:41
100012019/6/3 17:16
100012019/6/4 9:10
100022019/6/2 15:30
100032019/6/3 11:29
100042019/6/3 21:35
100042019/6/4 21:35
100052019/6/4 22:36
100062019/6/4 22:30
## register注册表
idregister_time
100012019/6/1 12:23
100022019/6/1 13:40
100032019/6/2 9:19
100042019/6/2 22:45
100052019/6/2 23:50
100062019/6/3 11:40

解题

题目描述

用SQL求出次日留存率(前一天注册的用户在第二天登录的比例)

题解

SELECT
	d.num2/c.num1 AS rate
    ,d.date2 AS '日期'
FROM
(SELECT
	COUNT(DISTINCT id) AS num1
    ,DATE(register_time) date1
FROM xiaoliu.register
GROUP BY DATE(register_time)) c
INNER JOIN
(SELECT
	COUNT(DISTINCT a.id) num2
    ,DATE(b.login_time) date2
FROM
xiaoliu.register a
INNER JOIN
xiaoliu.login b
ON DATE(date_add(a.register_time,INTERVAL 1 DAY))=DATE(b.login_time)
AND a.id=b.id
GROUP BY DATE(b.login_time)) d
ON date_add(c.date1,INTERVAL 1 DAY)=d.date2;

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值