hive 留存率 计算
定义
留存率:某日注册的用户,在之后几天是否活跃,一日留存率就是用户注册后第二天仍然活跃,以此类推,三日留存率,七日留存率。
任务:
计算所有用户注册后的一日留存率,三日留存率和七日留存率。
建表
use default;
show tables;create table register_tbl(
user_id string,
register_date string)
row format delimited fields terminated by ','
location "/HiveTestDB/retention/re"
tblproperties("skip.header.line.count"="1");create table active_tbl(
user_id string,
active_date string)
row format delimited fields terminated by ','
location "/HiveTestDB/retention/ac"
tblproperties("skip.header.line.count"="1");load data local inpath "/home/hadoop/register_tbl.csv" into table register_tbl;
load data local inpath "/home/hadoop/active_tbl.csv" into table avtive_tbl;select * from register_tbl;
select * from active_tbl;
查询
说明:register_tbl表记录了所有用户的注册日期,active_tbl是用户所有活动日期;
计算所有注册用户注册后第一天、第三天和第七天的留存率,也就是所有用户注册后第一天、第三天和第七天有登录行为的数量和比例。
步骤;
- register_tbl左关联active_tbl,如果要计算特定时间范围内注册用户的留存率,通过where子句过滤。
- 按用户和注册日期分组,计算组内活跃日期与注册日期差值分别为1,3,7的记录的个数,通过distinct实现有为1,没有为0
- 由此计算全部用户中留存一天、三天和七天的个数及比例
select count(*) total, sum(d1) 1d_Retent,sum(d3) 3d_Retent,sum(d7) 7d_Retent,sum(d1)/count(*) 1d_Retent_Rate,sum(d3)/count(*) 3d_Retent_Rate,sum(d7)/count(*) 7d_Retent_Rate from (select uid,rd,count(distinct if(datediff(ad,rd) = 1, 1, null)) d1, # 也可以 if(count(datediff(ad,rd) = 1 or null)>0,1,null),避免使用distinctcount(distinct if(datediff(ad,rd) =3, 1, null)) d3,count(distinct if(datediff(ad,rd) =7, 1, null)) d7 from (select r.user_id uid,from_unixtime(unix_timestamp(r.register_date,'yyyy-MM-dd')) rd,from_unixtime(unix_timestamp(a.active_date,'yyyy-MM-dd')) ad from register_tbl r left join active_tbl a on r.user_id = a.user_id) s1 group by uid,rd ) s2
结果
最终计算结果
过渡结果
每一个用户在注册后第一天、第三天和第七天是否有过登录行为。
hive 留存率 计算相关推荐
- MySql 练习- 留存率计算
MySql 练习- 留存率计算 最近开始每天抽空刷几道MySQL的题,还是要多实战练练,不然容易忘.今天分享一道MySQL里面的留存率计算 数据源:question_practice_detail i ...
- 一个SQL,程序实现多日留存率计算
留存率是衡量用户质量的最重要指标之一,因此计算用户留存率是用户数据分析中必须掌握的技能之一. 留存率指标中,通常需要关注次日留存.3日留存.7日留存和月留存.对新增用户而言,需要关注更细颗粒度的数据, ...
- 活跃用户数怎么计算_留存率计算
数据源:来自猴子老师的留存率分析教程 链家面试题:如何分析留存率?mp.weixin.qq.com [面试题] 手机中的相机是深受大家喜爱的应用之一,下图是某手机厂商数据库中的用户行为信息表中部分数 ...
- 用SQL进行用户留存率计算
今天我们来分享一个常见案例,用SQL来计算用户留存率. 目录: 1. 案例数据 2. 思路分析 3. 完整代码 1. 案例数据 这里我们一共两份日志数据,分别是用户账号创建的日志以及用户登录的日志. ...
- hive指标计算:同比
项目场景: 通过hivesql进行指标计算 求同比: 创建hive内表 create table ccic_dev.test_yoy( yearmonth string, city string, c ...
- mysql 用户留存率计算(每日新增DNU,次日留存率,3日留存率,7日留存率)
我是先学习了这位大神留存率的写法,然后我自己完善了一下.@阿柯@ 首先声明一下留存的概念 次日留存:1月1日注册的新用户,在1月2日登陆了app.即登陆日期 - 注册日期 = 1天. 3日留存:1月1 ...
- Hive SQL 计算指定日期本周的第一天和最后一天
selectday,dayofweek(day) as dw1,date_add(day,1 - dayofweek(day)) as Su_s -- 周日_start,date_add(day,7 ...
- Hive 计算用户留存率(次日,3日,N日)
文章目录 什么是用户留存率? 创建数据源 计算留存率 计算 N 日的留存率 什么是用户留存率? 用户留存率是指在特定时间段内,用户在使用某个产品或应用程序后,再次使用该产品或应用程序的比例. 它可以帮 ...
- 数据运营-常见问题 留存率/连续登陆等(SQL Hive)
一.问题:留存率计算(SQL) 字段及表说明: 表名:user_log 字段名: log_day:登录日期 device_id:用户设备id app_id:用户app的id,其中device_id和a ...
最新文章
- 安装包镜像_创建 macOS Catalina cdr格式镜像安装包
- 洛谷P4413 R2
- c rsa java私钥_RSA,JAVA私钥加密,C#公钥解密
- Python中令人头疼的变量作用域问题,终于弄清楚了
- vue的列表交错过渡
- opencv 图像属性
- 红帽取代 Oracle,接管 OpenJDK 8 和 OpenJDK 11 | 极客头条
- htc x920e刷android7.0,HTC X920e(Butterfly)第三方recovery刷入教程
- C语言如何分离一个数的高低位,如何将2个字节变成一个字节
- python 确定字符互异
- 巴比特 | 元宇宙每日必读:时薪100万,「虚拟主播」的吸金能力被证实,其背后的公司IPO申请获批...
- 2018美团实习生招聘——K的倍数
- 带着孩子学数学--经验总结1:乘法怎么教,小学数学阶段等等
- python爬取推特图片_twitter图片视频批量下载
- 【GlobalMapper精品教程】027:路径剖面和和视线工具的使用
- C语言编程编程思维培养的重要性,谈编程思维的培养
- 2021年起重机司机(限桥式起重机)考试题库及起重机司机(限桥式起重机)找解析
- 数据结构严蔚敏代码合集 严书数据结构代码实现 可直接运行 持续更新by myself
- FMDB And Dao
- webrtc】windows 构建 :depot_tools 采坑
热门文章
- excel想要把两列合并且用空格隔开
- 垃圾回收分类系统、垃圾回收高保真原型设计 、垃圾分类后台管理系统、垃圾回收分类平台、垃圾回收分类、智慧管理系统、订单管理、财务管理、系统管理、库存管理、设备管理、Axure原型、rp原型
- 数据可视化实验一之单变量数据的统计图表可视化
- 黑苹果13.0.1驱动RTL 8125B 2.5G网卡失败故障排查
- taobao.user.avatar.get
- 条件求和:SUMIF、SUMIFS函数
- 顺序图-循环和分支-操作符的使用
- my love(新贵公子主题歌)铃声 my love(新贵公子主题歌)手机铃...
- 薅羊毛的机会了,点个“赚”即有机会赚取高额佣金
- 免费网络硬盘、FTP、大容量邮箱、电子相册合集