SQL——计算次日留存率
问题:
- 计算用户是否是次留用户
- 计算每日次日留存率
(本文章中的次日留存默认只针对新增用户)
原数据表:user_login_table表
表字段:用户、登陆日期
sql查询:
- 计算用户是否是次留用户
select t1.user_name,max(case when datediff(day,date(newdate),date(logindate)) = 1 then 1 else 0 end) as 是否次留用户
from
(select user_name,min(logindate) newdatefrom user_login_tablegroup by user_name
) t1 join user_login_table t2 on t1.user_name = t2.user_name
group by t1.user_name
查询结果:
2. 计算每日次日留存率
select t1.logindate 日期,count(distinct case when datediff(day,date(newdate),date(t3.logindate)) = 1 then t3.user_name else null end) 次日留存用户数,count(distinct t2.user_name) 新增用户数,
bi_division(次日留存用户数*100,新增用户数,2) || '%' "次日留存率"
from
(select distinct logindate from user_login_table
) t1 left join
(select user_name,min(logindate) newdatefrom user_login_tablegroup by user_name
) t2 on t2.newdate = t1.logindate
left join user_login_table t3 on t2.user_name = t3.user_name
group by t1.logindate
查询结果:
如果以上sql中t1、t2、t3表之间任意一处用join而非left join(体现join与left join区别),读者可亲自尝试,查询结果如下:
SQL——计算次日留存率相关推荐
- 【SQL屠夫系列】- 高频面试之SQL计算用户留存率
文章目录 指标背景 指标计算 真题 思路 开撸 拓展 在如今的程序员面试过程中,考察SQL部分能力,虽不是难点,但几乎是必考. 为检查思路盲点,避免翻船,各位看官也可以复盘下,如对你有一丝的帮助,欢迎 ...
- 【已解决】数据库常见场景应用计算次日留存率
记录一个数据库中常见的应用场景,需要计算用户次日留存率(次留分析),查询出计算的用户留存率. 结合这个应用背景,牛客网站上的 SQL29 计算用户的平均次日留存率 非常适合拿来练习,下面就以牛客上的这 ...
- sql计算留存_链家面试题:如何分析留存率?
[面试题] 手机中的相机是深受大家喜爱的应用之一,下图是某手机厂商数据库中的用户行为信息表中部分数据的截图. 用户id:用户唯一标识: 应用名称:是手机中的某个应用,例如相机.微信.大众点评等. 启动 ...
- 用SQL进行用户留存率计算
今天我们来分享一个常见案例,用SQL来计算用户留存率. 目录: 1. 案例数据 2. 思路分析 3. 完整代码 1. 案例数据 这里我们一共两份日志数据,分别是用户账号创建的日志以及用户登录的日志. ...
- 用户留存率是什么?如何用sql求出次日留存率?
建表sql语句: drop table if exists liucunlv; create table liucunlv as select * from ( select 'a' as user_ ...
- Hive 计算用户留存率(次日,3日,N日)
文章目录 什么是用户留存率? 创建数据源 计算留存率 计算 N 日的留存率 什么是用户留存率? 用户留存率是指在特定时间段内,用户在使用某个产品或应用程序后,再次使用该产品或应用程序的比例. 它可以帮 ...
- 计算用户的平均次日留存率
刷到的一道数据库题:计算用户的平均次日留存率 思路: 1.将同一张表连接起来(这里用 left join ,因为左表保留的是所有的刷题记录,右表保留的是第二天还来刷题的记录) 2.通过datediff ...
- SQL29 计算用户的平均次日留存率
牛客网打卡:SQL29 计算用户的平均次日留存率 解题思路 题目给出的意思: 不考虑用户的答题情况,只考虑是否答题了 也就是选出两张表,第一张是当天的答题情况,第二张是第二天的情况 时刻理解新的虚拟表 ...
- sql计算每日新增用户、及留存率指标
show databases; -- 选择数据库进行建库 use tempt2022; -- 用户注册表 create table user_info(user_id varchar(10) prim ...
最新文章
- linux 自动启动shell 和 init概述
- 面试题: mysql 数据库已看 sql安全性 索引 引擎 sql优化
- mysql维护 运维_MySQL运维之--日常维护操作
- modelandview 可以返回html么_Python: 爬虫网页解析工具lxml.html(一)
- hdu3033---加限制条件的0-1背包
- iOS中的armv6、armv7、armv7s
- C/C++编程知识分享:C++ 手把手教你实现可变长的数组
- mysql创建表失败
- 诺基亚五摄手机终于发布了!拍摄能力无与伦比 售价699欧元
- Linux下SVN 命令操作手册
- oracle增量脚本(记录)创建触发器监控对一张表的增删改
- 浏览器页面渲染的过程
- 最新布尔教育Blog项目实战 php博客项目实战教程 php实战教程(完整)
- 《认知心理学》思维导图
- javase哪部分最难_JavaSe到底有多重要?
- 做产品也要造概念,讲故事,用优雅的措辞美化自己
- 方舟生存显示都是外国服务器,方舟生存进化:在新服的国人,都是如何跟外国人交流的?...
- 创建三维头像只需一张自拍,AI 技术即将开启 3D 社交时代?
- php artisan migrate,关于laravel 5.1下php artisan migrate的使用
- rabiitmq卸载_RabbitMQ 的安装与卸载 以及各种踩坑