SQL-留存率

一、留存率业务含义

留存率可以评用户对产品的粘性,留存率越低用户对产品的粘性越小

留存率通常分为次日留存率、3日留存率、7日留存率、30日留存率

这里以新增用户留存率为例:

次日留存率:(基准日之后的第1天留存的用户数)/基准日当天新增用户数

第3日留存率:(基准日之后的第3天留存的用户数)/基准日当天新增用户数

第7日留存率:(基准日之后的第7天留存的用户数)/基准日当天新增用户数

第30日留存率:(基准日之后的第30天留存的用户数)/基准日当天新增用户数

二、相关题目

1.计算1月2日的次日留存率

即计算1月2日次日留存用户数(1月3日的登录用户数)/1月2日新增用户数

以上代码写的太复杂,我们思考可以如何简化:尝试将三个部分代码合并

但是这么写结果是错误的,原因是:

①如果要将第一部分和第二部分代码合并,首要条件是它们的结果集一样,但是上面的结果集不一样,所以要将join 修改为left join,从而保证前一个表中的所有数据可以得到完整保存。

②join之后可能会导致表中的数据膨胀,要进行去重操作,count(r.uid)修改为count(distinct r.uid)

最后修改为:

2.计算所有注册日的次日留存率

3.计算所有注册日的次日留存率、3日留存率和7日留存率

这题有点灵活,再看看!

但是join次数太多了,我们想办法优化:

我们不再指定求相差1,3,7天的数据,我们使用between...and...求出和当前日期相差1到7天的所有数据。

4.只有一张登陆表的情况

把第一次登陆看成注册

相关推荐
唐青枫2 天前
MySQL JSON 实战详解:从存储、查询、更新到 JSON_TABLE 与索引
sql·mysql
掉头发的王富贵4 天前
【StarRocks】极限十分钟入门StarRocks
数据库·sql·mysql
zzzzzz3109 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
云技纵横11 天前
唯一索引 INSERT 死锁实战:5 秒复现交叉插入的 S 锁循环等待
sql·mysql
BD_Marathon13 天前
SQL学习指南——视图
数据库·sql
2601_9620725513 天前
李梦娇常识4600问|题库|打印版
sql·华为od·华为·c#·华为云·.net·harmonyos
HackTwoHub13 天前
Sqli-Scanner SQL注入SKILL自动化挖掘SQL注入,零依赖自动化SQL注入挖掘,赏金猎人
数据库·人工智能·sql·web安全·网络安全·自动化·系统安全
Volunteer Technology13 天前
Flink Table API与SQL(一)
大数据·sql·flink
持敬chijing13 天前
Web渗透之SQL注入-常用sql语句
sql·安全·web安全·网络安全
Theo·Chan13 天前
更换 Kingbase V9 License 踩坑记
sql·信创·kingbase