hive + tableau 计算留存率 计算留存数
hive + tableau 计算留存率 计算留存数 hive计算留存
原文连接:https://segmentfault.com/a/1190000039736441
背景:需要统计APP近2年每月的留存数据
留存:12个月前下载了APP的用户,在接下来的12个月内有访问过APP的用户
需求图示(图是友盟统计):
文章图片
数据:用户访问记录表visit_table_name
字段:用户标识user,访问日期date
12abc,2021-03-29
【hive + tableau 计算留存率 计算留存数】分析:
1.统计第一次访问的月份
substr(date,1,7) 返回月份格式 如 2021-03-29 => 2021-03
SELECT user,min(substr(date,1,7)) AS first_month
FROM visit_table_name
WHERE date >= "2019-02-01" AND date < "2021-03-01"
GROUP BY user
2.统计用户每月访问情况
SELECT user,substr(date,1,7) AS visit_month
FROM visit_table_name
WHERE date >= "2019-02-01" AND date < "2021-03-01"
GROUP BY user,substr(date,1,7)
原文连接:https://segmentfault.com/a/1190000039736441
3.连接起来,月份相减
SELECT first_table.user,
first_month,
visit_month,
(year(CONCAT(visit_month,"-01"))-year(CONCAT(first_month,"-01")))*12+(month(CONCAT(visit_month,"-01"))-month(CONCAT(first_month,"-01"))) AS gap_month
FROM
(SELECT user,
min(substr(date,1,7)) AS first_month
FROM visit_table_name
WHERE date >= "2019-02-01"
AND date < "2021-03-01"
GROUP BY user) AS first_table
LEFT JOIN
(SELECT user,
substr(date,1,7) AS visit_month
FROM visit_table_name
WHERE date >= "2019-02-01"
AND date < "2021-03-01"
GROUP BY user,
substr(date,1,7)) AS visit_table ON first_table.user = visit_table.user
查询出来结果,gap_month即用户访问间隔,如果用户第一次是20年2月访问,第二次在20年3月就会有个1gap,
文章图片
效果展示利用Tableau BI工具
文章图片
做出来的效果和下面类似
文章图片
原文连接:https://segmentfault.com/a/1190000039736441
推荐阅读
- Hive常见问题汇总
- 使用协程爬取网页,计算网页数据大小
- ACSL|ACSL 美国计算机科学联赛 2016-2017 R4 摩天大楼-Skyscraper 题解
- 首屏时间,你说你优化了,那你倒是计算出给给我看啊!
- ATAN2根据xy坐标计算角度
- 历史上的今天|【历史上的今天】2 月 16 日(世界上第一个 BBS 诞生;中国计算机教育开端;IBM 机器人赢得智能竞赛)
- 计算机网络基础TCP\HTTP\HTTPS
- 计算机网络|计算机网络——DHCP协议详解
- 黑猴子的家(Hive|黑猴子的家:Hive 的数据组织)
- android|android today上下卡片,【精品文档】关于计算机专业大学生安卓系统有关的外文文献翻译成品(基于Android(安卓)的考勤管理系统(中英文双语对照)