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.只有一张登陆表的情况

把第一次登陆看成注册

相关推荐
l1t2 小时前
DeepSeek总结的五分钟测试:Ted Dunning 谈 DuckDB 为何让分析更轻松
数据库·sql·duckdb
TangGeeA4 小时前
数据库、SQL 与 DB AI
数据库·人工智能·sql
roman_日积跬步-终至千里7 小时前
数仓开发的三层责任:业务定义、模型设计与 SQL 实现
数据库·数据仓库·sql·数据建模
Gauss松鼠会8 小时前
GaussDB 整体架构解析
运维·服务器·网络·数据库·sql·架构·gaussdb
Gauss松鼠会9 小时前
GaussDB 中 gsql 与 DBeaver(JDBC)客户端工具查询时间不一致:原因、排查与处理
运维·服务器·数据库·sql·gaussdb·经验总结
渣渣盟9 小时前
Flink SQL 流批一体:从 SQL 到执行计划,优化器如何工作?
大数据·sql·flink
Decay__15 小时前
05_MySQL 常用 SQL 大全 —— 诊断、管理、优化辅助 SQL 与三大系统库速查
运维·数据库·sql·mysql·架构
Decay__21 小时前
04_MySQL DBA 日常运维手册 —— 会话管理、锁与阻塞、事务监控、慢查询与日志巡检
运维·数据库·sql·mysql·架构
吃一碗粉只付一碗钱1 天前
10-令牌里的用户主键不要明文
服务器·数据库·sql·sqlserver·c#
sun03221 天前
【JDK 动态代理】 和 【CGLIB 代理】对比
java·数据库·sql