电商指标之用户留存率
目录
1.前言
2、用到的函数
3、指标理解
4、创建表和导入数据
4.1目标表
4.2 数据来源表
4.2.1 用户登录历史表编辑
4.2.2 用户注册表
5、sql解析
5.1一般思路做法
5.2 减少部分重复计算 方法
5.3 实际开发的做法(思路和上面差不多,不过更灵活)
1.前言
计算原则:一般看到什么什么率啥的,指标率=a/b,都要明确分子,分母代表的含义,然后在相除 。
新增留存率具体是指留存用户数与新增用户数的比值。
2、用到的函数
1.datediff(time1,time2):日期比较函数,time1-time2,返回一直int(整数)select datediff('2020-06-14 11','2020-06-10');返回结果: 42.if(表达式,a,b):当表达式条件为真,返回a,否则返回b的值select if(1=2,100,200); -->200select if(1=1,100,200); -->100if(time='2020-06-14',1,0): 表达式为真,返回1,否则返回0;3. cast():类型转换函数select cast(1.0001 as int) -->1cast(id as string) -->将id字段的类型改成 string类型
3、指标理解
留存率理解:2020-06-14新增100个用户,
1日之后(2020-06-15)这100人中有80个人活跃了,
那2020-06-14的1日留存数则为80,2020-06-14的1日留存率则为80%(80/100)。
4、创建表和导入数据
4.1目标表
1.建表(目标表)
DROP TABLE IF EXISTS ads_user_retention;
CREATE EXTERNAL TABLE ads_user_retention
(`dt` STRING COMMENT '统计日期',`create_date` STRING COMMENT '用户新增日期',`retention_day` INT COMMENT '截至当前日期留存天数',`retention_count` BIGINT COMMENT '留存用户数量',`new_user_count` BIGINT COMMENT '新增用户数量',`retention_rate` DECIMAL(16, 2) COMMENT '留存率'
) COMMENT '用户留存率'ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'LOCATION '/warehouse/gmall/ads/ads_user_retention/';
4.2 数据来源表
数据来源表:见另一篇博客
留存率数据来源_别这么骄傲的博客-CSDN博客
4.2.1 用户登录历史表
dws_user_user_login_td:是用户域用户粒度登录历史至今汇总表,
如图所示:以为是历史累计表,当我们拿14号分区数据时,最后登录时间为10号 的用户数据也包括在里面。
4.2.2 用户注册表
dwd_user_login_inc:用户域用户注册事务事实表,
5、sql解析
5.1一般思路做法
下面SQL中 求06-14留存的用户数的图解
2020-06-13日 的 1 日留存率:在13号新增的用户,而且在14号活跃(有登录)的用户
留存率= 当天的留存用户数/昨天新增用户数
步骤:
(1)求06-13新增用户的数据 a
(2)求06-14留存的用户数 b
(3)做差 b/a1.求06-13新增用户的数据
select user_id
from dwd_user_register_inc
where dt='2020-06-13'2.求06-14留存的用户数
select count(*)
from
(select user_id from dwd_user_register_incwhere dt='2020-06-13'
)t1
join
(select user_idfrom dws_user_user_login_tdwhere dt='2020-06-14' and login_date_last='2020-06-14'--拿到当天的分区,而且用户最后登录时间是 06-14号的数据
)t1
on t1.user_id=t2.user_id
--两个表连接,拿到既是昨天新增,又是有今天登录的用户数据3. select '2020-06-13' ,1 ,-- 06-13号的1日留存率,b.cnt , --留存用户数,a.cnt , -- 新增用户数cast(b.cnt/a.cnt as decimal(16,2)) --留存率
from
(select count(user_id) as cnt1from dwd_user_register_incwhere dt='2020-06-13'
)a,
(select count(*) as cntfrom(select user_id from dwd_user_register_incwhere dt='2020-06-13')t1join (select user_idfrom dws_user_user_login_tdwhere dt='2020-06-14' and login_date_last='2020-06-14'--拿到当天的分区,而且用户最后登录时间是 06-14号的数据)t1on t1.user_id=t2.user_id--两个表连接,拿到既是昨天新增,又是有今天登录的用户数据
)b
5.2 减少部分重复计算 方法
方法1中求新增用户数计算了两次
所以我们可以减少一个子查询
5.3 实际开发的做法(思路和上面差不多,不过更灵活)
思路:
(1)where筛选出用户注册表(dwd_user..)中有注册的用户。
(2)在用户历史登录表中求14号分区的数据。
(3)根据 dt 时间分组,就可以知道用户注册表中每个用户是在哪一天注册(新增)的了,所以count(*)时,也是统计当天分区 有用户注册的数据(新增的用户数)。
(4)if()筛选14号留存的用户数, 然后留存率=某天用户留存数/用户新增数。!这里有个小细节:
group by dt (分组时只用来dt), 但是在select中使用了不是分组字段的
datediff('2020-06-14',dt),也没有报错的原因是-->
group by 分组后 ,一般select可以查询分组字段和max()和sum()等聚合函数,
还可以查询 使用了udf函数的分组字段,满足一进一出即可,如datediff('2020-06-14',dt)。select'2020-06-14' ,dt ,datediff('2020-06-14',dt) ,sum(if(login_date_last='2020-06-14',1,0)) retention_count,count(*) new_user_count,cast(sum(if(login_date_last='2020-06-14',1,0))/count(*)*100 as decimal(16,2)) retention_rate
from
(selectuser_id,dtfrom dwd_user_register_incwhere dt>=date_add('2020-06-14',-7)and dt<'2020-06-14'
)t1
join
(selectuser_id,login_date_lastfrom dws_user_user_login_tdwhere dt='2020-06-14'
)t2
on t1.user_id=t2.user_id
group by dt;
电商指标之用户留存率相关推荐
- 8000字干货 | 教你打造电商产品的用户体系
本文由作者 书丰 发布于社区 对于任何电商产品来说,没有用户的产品是没有未来的,拥有用户但却不懂用户的产品也是没有未来的.产品经理需要从心理上去理解用户.预判用户的行为,在现实中挖掘用户的需求,从行动 ...
- 【报告分享】2021年中国五大主流电商平台关于用户数据的最新规则汇总.pdf(附下载链接)...
省时查报告-专业.及时.全面的行研报告库 省时查方案-专业.及时.全面的营销策划方案库 大家好,我是文文(微信号:sscbg2020),今天给大家分享纷析智库和夸克网于2021年9月份联合发布的报告& ...
- Z04 - 999、Flink与电商指标分析
初学耗时:999h 注:CSDN手机端暂不支持章节内链跳转,但外链可用,更好体验还请上电脑端. 『 因为要去见那个不一般的人,所以我就不能是一般人.』 1.Z04系列全套网盘资源: Z04系列全套 ...
- B2B电商营运「增长6步走,如何激发电商购买与用户参与度?」
数字化普及,千禧年代用户逐渐成为B2B采购的中坚力量.传统制造业也纷纷「触电」,将销售触角衍生至电商在线探索,即B2B电商.但面临专业的B2B内容语境与漫长的成交周期,如何方能捕获商机,激发成交? 欢 ...
- 电商指标详细介绍和推荐系统常用评估指标
本文主要是针对电商中的常见指标进行归类介绍,包括推荐系统中需要关注的指标.本文主要分为三部分进行说明: 电商分类介绍 电商的指标分类介绍 电商推荐系统常看的指标 1. 电商的分类 电子商务(Elect ...
- 电商淘宝用户行为分析
一.项目介绍 本次实战的数据是来自阿里巴巴提供的一个淘宝用户行为数据集,用于隐式反馈推荐问题的研究. 数据下载:https://tianchi.aliyun.com/dataset/dataDetai ...
- 电商指标项目-背景及技术选型
1. 项目背景 1.1. 项目简介 公司有一个正在运营中的电商网站,名称叫做[京京购].这是一个B2B2C的电商平台,类似京东. 现在我们想了解一下该电商网站的各种用户行为(访问行为.购物行为.点击行 ...
- 电商平台给用户推大胸妹,为什么是一个很糟糕的结果?
今天和大家聊聊推荐算法,最近发生了一件挺有意思的事情,双十一那天打开了某电商app,首页推荐居然长这样-- 可能在很多lsp们看来,这样的推荐结果不仅没有任何问题,反而非常好.今天就和大家简单聊聊关于 ...
- 数据分析案例--电商指标的实际应用
数据分析案例--天猫订单分析 数据分析的一般过程 数据来源及内容 天猫订单分析过程 数据分析的一般过程 明确项目背景,待解决的问题 : 分析逻辑,画出逻辑树,明确分析过程中的指标 : 提数分析,同时进 ...
- 前众信旅游B端产品经理吴彪:如何搭建B端电商产品及用户体系
嘉宾介绍 吴彪,北京树下科技有限公司创始人.于2016年4月1日起,脱产自学产品经理,并在豆瓣中,坚持每天记录,热心于把转型经验分享给产品新人,因此身边聚集了数百位产品经理. 2016年5月初,进入众 ...
最新文章
- 手把手玩转win8开发系列课程(11)
- python爬虫软件-一些Python爬虫工具
- python将字符转换为字典
- 报错 POST http://192.168.79.165:8015/marketing/manager 400 (BAD REQUEST) 解决办法
- GlusterFS架构与维护
- JVM垃圾收集器与内存分配策略学习总结
- 【BZOJ1014】【tyvj3486】火星人prefix,Splay+字符串hash
- 1.4通过时间的方向传播
- ssis 包配置组织程序_如何停止失控的SSIS程序包
- Kaggle 年度报告出炉:数据科学家年轻高学历,薪资近百万
- 网络生活催生新式词汇
- 私人定制-代码生成器3
- 推荐系统实例-基于矩阵分解
- 【元胞自动机】基于matlab激进策略元胞自动机三车道(不开放辅路,软件园影响)交通流模型【含Matlab源码 1297期】
- 【原创】基于Qt5.14的一站式安卓开发环境搭建
- perl 十六进制转二进制
- 〖Python 数据库开发实战 - MySQL篇⑪〗- 修改数据表结构
- jsp中空格字符怎么写_jsp多个空格符号怎么打
- 怎样快速将pdf转成excel
- 什么是网络推广以及如何做好网络推广