统计每个日期新用户的次日留存率
统计每个日期新用户的次日留存率
#明确问题:12号的新用户次留是指在12号是第一次登录,并且在13号也登录了。
#分母:当前日期新用户的特征是 当前日期=该用户所有登录日期的最小值
#分子:当前日期作为前一天有该用户的登录记录 并且是第一次登录。(12号作为前一天有这个人,说明13号有这个人)
【易错点】因为分母有可能为0,所以用ifnull(不为null时返回的值,为null时返回的值),这里指定为null时返回0
前一天有该用户的登录记录:
case when (user_id,date)in(select user_id,date(date,'-1 day') from login
第一次登录
(user_id,date)in (select user_id,min(date)from login group by user_id)
#牛客参考代码
select date,ifnull(round((sum(case when (user_id,date)in(select user_id,date_add(date,interval -1 day) from login) and (user_id,date)in (select user_id,min(date)from login group by user_id)then 1 else 0 end))/(sum(case when (user_id,date)in(select user_id,min(date)from login group by user_id)then 1 else 0 end)),3),0)as p
from login
group by date
order by date;
#自己修改后的代码
select date,ifnull(round((sum(case when (user_id,date)in(select user_id,date(date,'-1 day') from login) and (user_id,date)in (select user_id,min(date)from login group by user_id)then 1 else 0 end))*1.0/(sum(case when (user_id,date)in(select user_id,min(date)from login group by user_id)then 1 else 0 end)),3),0.000)as p
from login
group by date
order by date;
题目:
描述:
请你统计一下每个日期新用户的次日留存率。
有一个登录(login)记录表,简况如下:
请你写出一个sql语句查询每个日期新用户的次日留存率,结果保留小数点后面3位数(3位之后的四舍五入),并且查询结果按照日期升序排序,上面的例子查询结果如下:
查询结果表明:
2020-10-12登录了3个(user_id为2,3,1)新用户,2020-10-13,只有2个(id为2,1)登录,故2020-10-12新用户次日留存率为2/3=0.667;
2020-10-13没有新用户登录,输出0.000;
2020-10-14登录了1个(user_id为4)新用户,2020-10-15,user_id为4的用户登录,故2020-10-14新用户次日留存率为1/1=1.000;
2020-10-15没有新用户登录,输出0.000;
(注意:sqlite里查找某一天的后一天的用法是:date(yyyy-mm-dd, ‘+1 day’),sqlite里1/2得到的不是0.5,得到的是0,只有1*1.0/2才会得到0.5)
统计每个日期新用户的次日留存率相关推荐
- 每个日期新用户的次日留存率
SQL练习题:网站每天有很多人登录,请你统计一下牛客每个日期新用户的次日留存率. 题目: 牛客每天有很多人登录,请你统计一下牛客每个日期新用户的次日留存率. 有一个登录(login)记录表,简况如下: ...
- 每日新增用户的次日留存率
每日新增用户的次日留存率 第一种办法,传统解法: 先去重,然后3个join selectlog_day '日期',count(user_id_d0) '新增数量',count(user_id_d1) ...
- mysql统计今日首充用户_电商用户行为MySQL分析
一:分析背景 近年来电商行业发展迅猛,发展的模式也从最开始粗糙的供给结构开始向精细化电商发展.我国政策也指出: 促进电子商务发展是推进供给侧结构性改革重要的途径.因此分析用户的行为,可打造爆款商品,爆 ...
- 全媒体运营师胡耀文教你:从Aha时刻来看新用户激活
Aha时刻是新用户第一次认识到产品的价值,脱口而出"啊哈,原来这个产品可以帮我做这个".当花了大力气吸引来了一波新用户时,如何帮助留存转化,就要依靠Aha时刻. 2008年,当你宅 ...
- mysql 用户留存率计算(每日新增DNU,次日留存率,3日留存率,7日留存率)
我是先学习了这位大神留存率的写法,然后我自己完善了一下.@阿柯@ 首先声明一下留存的概念 次日留存:1月1日注册的新用户,在1月2日登陆了app.即登陆日期 - 注册日期 = 1天. 3日留存:1月1 ...
- 统计每天的新老用户,日活,周活,月活
版权声明:转载请注明出处! https://blog.csdn.net/ddxygq/article/details/81391718 最近有一个需求,统计每天的新老用户,日活,周活,月活. 我们每天 ...
- 用户留存率是什么?如何用sql求出次日留存率?
建表sql语句: drop table if exists liucunlv; create table liucunlv as select * from ( select 'a' as user_ ...
- Excel 利用同期群分析计算新用户留存率
业务分析方法中常用的有同期群分析,本文使用Excel和MySQL,结合同期群计算新注册用户的留存率,并放在实际的应用场景中进行分析. 一.简单介绍同期群分析 1.同期群分析(cohort analys ...
- SQL29 计算用户的平均次日留存率
牛客网打卡:SQL29 计算用户的平均次日留存率 解题思路 题目给出的意思: 不考虑用户的答题情况,只考虑是否答题了 也就是选出两张表,第一张是当天的答题情况,第二张是第二天的情况 时刻理解新的虚拟表 ...
- hive统计每日的活跃用户和新用户sql开发(附shell脚本)
假如有一个web系统,每天生成以下日志文件: 2020年12月21日数据 192.228.33.6,hunter,2020-12-21 10:30:20,/a 192.228.33.7,hunter, ...
最新文章
- php设置id递增,php实现雪花算法(ID递增)
- 让网管暴寒的网络故障(一笑了之)
- python导入excel文件-python使用xlrd模块读写Excel文件的方法
- vue 在进入某一个页面的时候,created方法不执行,----亲测,通俗易懂
- Apache部署网页-Ubuntu16.04
- WinForm之创建word并操作文档
- exe文件添加为服务
- vld不输出泄漏信息_光纤天线方案和泄漏电缆方案的比较
- test2 3-16 2021 模拟赛two
- vue或js解析文件excel表格js通过插件解析表格读取文件
- ajax请求l类型,jquery 的ajax请求示例和注意事项
- HTML表格、表单,以及新表单属性
- 【截至2006.12.31】毒霸反间谍可清除的部分流氓软件清单
- Error starting ApplicationContext. To display the auto-configuration report re-run your application
- 开源版多用户博客系统
- python使用selenium调用edge浏览器webdriver
- 三菱plc pwm指令_三菱PLC高速处理指令编程
- RequestError Error connect ETIMEDOUT 59.24.3.174443
- 荣耀手机环比倍增,小米有点受伤
- gwas snp 和_2型糖尿病GWAS关联SNP对miRNA-mRNA互作的影响分析
热门文章
- [Irving]字符串相似度-字符编辑距离算法(c#实现)
- JVM堆外内存回收原理
- ODT,ZQ校准,OCT,TDQS
- 带薪拉屎是一种怎样的体验
- 程序员视角:鹿晗公布恋情是如何把微博搞炸的?
- java 发微信视频_分享java微信开发视频
- Python对文件(外存)和内存的操作
- 基于javaweb+jsp的晚会抽奖系统(java+Jdbc+Servlet+Ajax+mysql)
- 【论文翻译】Flow-Guided Feature Aggregation for Video Object Detection
- 阿里云服务器从购买到配置全攻略