hive经典面试题2--次日留存、3日、7日留存怎么计算
背景:互联网公司,分析app上线后的效果,通常会通过很多指标来分析,其中一个指标就是留存率,留存率中最重要的就是次日留存,如果次日留存很高,说明这个app很成功,用户粘性高。
留存是怎么定义的呢?
- 一个用户第一天来了,第二天又来了,说明这个用户留存了。次日留存率就是100%
- 第一天来了100个用户,第二天这100用户中只有50个用户过来了,第三天这100个用户中只有30个用户过来了;那么次日留存率就是50/100×100=50%,3日留存率就是30/100×100=30%(比较的都是第一天这一批100用户)
我们来看看通过代码怎么计算留存率:
次日留存:
23号用户在24号的留存情况:
select t1.apptypeid,count(t1.uid) as active_users, --23号用户数count(t2.uid) as day2_active_users, --23号用户在24号的留存数concat(count(t2.uid)/count(t1.uid)*100,'%') as day2_active_user_rate, --23号用户在24号的留存率t1.dt
from
(selectapptypeid,uid,dt
from ods_center.ods_app_open
where dt='20211123'
group by apptypeid,uid,dt) t1left join
(selectapptypeid,uid,dt
from ods_center.ods_app_open
where dt='20211124'
group by apptypeid,uid,dt) t2
on t1.apptypeid=t2.apptypeid and t1.uid=t2.uid
group by t1.apptypeid,t1.dt;
次日、3日、7日留存:
18号用户在未来7天的留存情况:
select apptypeid,active_users, --18号用户数day2_active_users, concat(day2_active_users/active_users*100,'%') as day2_active_user_rate, --18号用户数的次日留存day3_active_users,concat(day3_active_users/active_users*100,'%') as day3_active_user_rate, --18号用户数的3日留存day4_active_users,concat(day4_active_users/active_users*100,'%') as day4_active_user_rate, --18号用户数的4日留存day5_active_users,concat(day5_active_users/active_users*100,'%') as day5_active_user_rate, --18号用户数的5日留存day6_active_users,concat(day6_active_users/active_users*100,'%') as day6_active_user_rate, --18号用户数的6日留存day7_active_users,concat(day7_active_users/active_users*100,'%') as day7_active_user_rate, --18号用户数的7日留存dt
from
(select t1.apptypeid,count(t1.uid) as active_users,count(case when datediff(t2.cu_dt,t1.cu_dt)=1 then t2.uid end) as day2_active_users,count(case when datediff(t2.cu_dt,t1.cu_dt)=2 then t2.uid end) as day3_active_users,count(case when datediff(t2.cu_dt,t1.cu_dt)=3 then t2.uid end) as day4_active_users,count(case when datediff(t2.cu_dt,t1.cu_dt)=4 then t2.uid end) as day5_active_users,count(case when datediff(t2.cu_dt,t1.cu_dt)=5 then t2.uid end) as day6_active_users,count(case when datediff(t2.cu_dt,t1.cu_dt)=6 then t2.uid end) as day7_active_users,t1.dt
from
(selectapptypeid,uid,dt,from_unixtime(unix_timestamp(dt,'yyyyMMdd'),'yyyy-MM-dd') as cu_dt
from ods_center.ods_app_open
where dt='20211118'
group by apptypeid,uid,dt,from_unixtime(unix_timestamp(dt,'yyyyMMdd'),'yyyy-MM-dd')) t1left join
(selectapptypeid,uid,dt,from_unixtime(unix_timestamp(dt,'yyyyMMdd'),'yyyy-MM-dd') as cu_dt
from ods_center.ods_app_open
where dt>'20211118' and dt<='2021124'
group by apptypeid,uid,dt,from_unixtime(unix_timestamp(dt,'yyyyMMdd'),'yyyy-MM-dd')) t2
on t1.apptypeid=t2.apptypeid and t1.uid=t2.uid
group by t1.apptypeid,t1.dt) t3
hive经典面试题2--次日留存、3日、7日留存怎么计算相关推荐
- Hive经典面试题——级联求和(访客访问统计报表)
在大数据面试中,Hive知识的考察大部分会问级联求和,业务场景虽然有很多种,比如说,年收入,月收入统计:访客访问次数年统计,月统计.等等.但是基本根源知识是级联求和,本文就以访客访问统计为例. 1.基 ...
- hive经典面试题4--如何用分时数据计算分时累计数据?如何在分时累计数据为空的时候去补全数据?
背景: 在互联网公司经常会用每10分钟为维度去统计某一个指标,这种统计我们称为分时数据.例如10分钟内某个渠道的安装数据,通过这个数据可以实时查看这个渠道质量好坏,如果这个渠道质量不行,那么就停止投放 ...
- Hive SQL经典面试题:统计连续登陆的三天及以上的用户
Hive SQL经典面试题 最近发现一道大数据面试经常会问的SQL题目:统计连续登录的三天及以上的用户(或者类似的:连续3个月充值会员用户.连续N天购买商品的用户等),下面就来记录一下解题思路. 要求 ...
- 数仓经典面试题三:用户留存
题目要求: 如何计算留存率 留存率是考察企业留住用户的能力,我们经常会计算次日留存.2日留存.7日留存等,如果现在让你用SQL实现,该怎么操作呢? 表部分数据如下: 留存数据字段说明: 用户id:用户 ...
- 面试题 I 28道数据分析师经典面试题!
- 点击上方" i小码哥"订阅我吧!- 偏统计理论知识 1. 扑克牌54张,平均分成2份,求这2份都有2张A的概率. M表示两个牌堆各有2个A的情况:M=4(25!25!) N表示 ...
- 总结了28道数据分析经典面试题
偏统计理论知识 1. 扑克牌54张,平均分成2份,求这2份都有2张A的概率. M表示两个牌堆各有2个A的情况:M=4(25!25!) N表示两个牌堆完全随机的情况:N=27!27! 所以概率为:M/N ...
- 李洪强iOS经典面试题153- 补充
李洪强iOS经典面试题153- 补充 补充 有空就来解决几个问题,已经懒癌晚期没救了... UML 统一建模语言(UML,UnifiedModelingLanguage)是面向对象软件的标准化建模 ...
- Python工程师求职必知的经典面试题
最近几年,学习Python语言的同学越来越多,学成之后大家对于后期的面试都遇到了很多难题,小编这次为大家整理了一份关于Python工程师求职必知的经典面试题!希望能够帮助到正在找Python工作的同学 ...
- 必读!53个Python经典面试题详解
作者 | Chris 翻译 | 苏本如,编辑 | 夕颜 题图 | 视觉中国 出品 | AI科技大本营(ID:rgznai100) 本文列出53个Python面试问题,并且提供了答案,供数科学家和软件工 ...
最新文章
- [置顶] 安卓高手之路之 WindowManager
- 【背包】作业(jzoj 1986)
- 高精度人脸表情识别(附GitHub地址)
- 如何修改GitHub项目显示语言问题
- react.js从入门到精通(六)——路由的使用
- 单机 mysql 复制_MySQL单机复制
- 《Java线程与并发编程实践》—— 1.2 操作更高级的线程任务
- java整人的代码_「vbs代码」vbs表白代码+整人代码,抖音vbscript表白代码 - seo实验室...
- ASCII码对照表 包含二进制、十进制、十六进制
- 统计学习导论(ISLR)(二):统计学习概述
- 数学模型之最小二乘法
- 高性能软件系统设计中应该考虑的问题
- 记腾讯的暑期实习面试
- http和web服务器
- Java物联网企业级项目 亿可控系统分析与设计
- easypoi导出word文档(文本,表格)
- v-for里面再嵌套一个v-for的写法
- 服务器架构的演变过程
- android填空题界面的代码,Android 使用代码实现一个选词(拖拽)填空题
- ORB-SLAM2的源码阅读(一):系统的整体构建