当前位置:网站首页>SQL必会题之留存率
SQL必会题之留存率
2022-07-01 05:45:00 【Begin to change】
目录
一、题目
查询每天新增用户数以及他们次日留存率和三十日留存率
二、步骤
1、先求出每个用户最早的登录日期(辅助列)
SELECT user_id,login_date,MIN(login_date) over (PARTITION by user_id ORDER BY login_date ) as first_login from tb_user_login;2、连表
将有辅助列的表与原表进行关联,关联的条件不仅为id相等,还有一个条件就是其登录的时间与最早的登录时间的差值
SELECT user_id,login_date,MIN(login_date) over (PARTITION by user_id ORDER BY login_date ) as first_login from tb_user_login)t1
LEFT JOIN tb_user_login as t2
on t1.user_id = t2.user_id and DATEDIFF(t2.login_date,first_login)=1
left JOIN tb_user_login as t3
on t1.user_id = t3.user_id and DATEDIFF(t3.login_date,first_login)=29
GROUP BY first_login,uesr_id;3、统计
COUNT(DISTINCT t1.user_id) as 新增用户数,
COUNT(DISTINCT t2.user_id) /COUNT(DISTINCT t1.user_id) as 次日留存,
COUNT(DISTINCT t3.user_id) /COUNT(DISTINCT t1.user_id) as 三十日留存 4、源码
SELECT user_id,login_date,MIN(login_date) over (PARTITION by user_id ORDER BY login_date ) as first_login from tb_user_login;
# 查看每个用户登录的日期
SELECT
first_login,
COUNT(DISTINCT t1.user_id) as 新增用户数,
COUNT(DISTINCT t2.user_id) /COUNT(DISTINCT t1.user_id) as 次日留存,
COUNT(DISTINCT t3.user_id) /COUNT(DISTINCT t1.user_id) as 三十日留存
from (SELECT user_id,login_date,MIN(login_date) over (PARTITION by user_id ORDER BY login_date ) as first_login from tb_user_login)t1
LEFT JOIN tb_user_login as t2
on t1.user_id = t2.user_id and DATEDIFF(t2.login_date,first_login)=1
left JOIN tb_user_login as t3
on t1.user_id = t3.user_id and DATEDIFF(t3.login_date,first_login)=29
GROUP BY first_login;边栏推荐
- 教务管理系统(免费源码获取)
- [QT] QT after addition, subtraction, multiplication and division, two decimal places are reserved
- Summary of common components of applet
- Boot + jsp University Community Management System (with source Download Link)
- Send you through the data cloud
- π盘,让您电脑变成个人的私有云
- HCM 初学 ( 二 ) - 信息类型
- 2022第八届中国国际“互联网+”大学生创新创业大赛产业命题赛道开启报名!
- 基于微信小程序的青少年生理健康知识小助手(免费获取源码+项目介绍+运行介绍+运行截图+论文)
- el-table 动态表头渲染 固定第一列 高度问题
猜你喜欢
随机推荐
Orcle创建用户+角色
This is the necessary software for college students 𞓜 knowledge management
[excel] column operation, which performs specific column for data in a cell, such as text division by comma, colon, space, etc
HCM 初学 ( 四 ) - 时间
[QT] QT after addition, subtraction, multiplication and division, two decimal places are reserved
CentOS 7使用yum安装PHP7.0
Codeforces Round #803 (Div. 2)vp
JSON data comparer
2022.6.30-----leetcode. one thousand one hundred and seventy-five
【考研高数 自用】高数第一章基础阶段思维导图
POL8901 LVDS转MIPI DSI 支持旋转图像处理芯片
教务管理系统(免费源码获取)
SSGSSRCSR区别
Data governance: metadata management implementation (Part IV)
Mongodb学习篇:安装后的入门第一课
穿越派 你的数据云行
Wild melon or split melon?
Code shoe set - mt3149 · and - the data is not very strong. Violent pruning can deceive AC
Qt编译时,出现 first defined here,原因及解决方法
Code shoe set - mt3114 · interesting balance - explain it with examples





![Fiber Bragg grating (FBG) notes [1]: waveguide structure and Bragg wavelength derivation](/img/83/97c0c6e23cbb7b4c2b630c217c5206.jpg)



