sql 用户登录和留存问题

该博客主要讨论如何使用SQL查询用户登录信息,包括最近登录时间、登录设备、新用户次日留存率、每日新用户数、留存率以及用户累计做题量。通过对登录记录表、用户表和客户端表的数据分析,提供了解决这些问题的SQL语句示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目转自牛客网sql 66-71题

题目描述

牛客每天有很多人登录,有一个登录(login)记录表,简况如下(这个表为基础表,后面所有的题都是以这个为基础进行的):
在这里插入图片描述
第1行表示user_id为2的用户在2020-10-12使用了客户端id为1的设备登录了牛客网
。。。
第4行表示user_id为3的用户在2020-10-13使用了客户端id为2的设备登录了牛客网

1.查询用户最近登录时间

请你写出一个sql语句查询每个用户最近一天登录的日子,并且按照user_id升序排序,上面的例子查询结果如下:
在这里插入图片描述

select user_id , max(date)
from login 
group by user_id 
order by user_id

2.统计每个用户最近登录是哪一天,用的是什么设备

有一个用户(user)表,简况如下:
在这里插入图片描述
还有一个客户端(client)表,简况如下:
在这里插入图片描述
请你写出一个sql语句查询每个用户最近一天登录的日子,用户的名字,以及用户用的设备的名字,并且查询结果按照user的name升序排序。

select u.name ,c.name,l.date
from login l
join (select user_id ,max(date) mdate 
	from login 
	group by user_id ) m
on l.user_id=m.user_id
join user u
on l.user_id=u.id
join client c
on l.client_id=c.id
where l.date=m.mdate
order by u.name

3.查询新登录用户的次日留存率<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值