SQL126 平均活跃天数和月活人数
题目描述
用户在牛客试卷作答区作答记录存储在表exam_record中,内容如下:
exam_record表(uid用户ID, exam_id试卷ID, start_time开始作答时间, submit_time交卷时间, score得分)
id | uid | exam_id | start_time | submit_time | score |
1 | 1001 | 9001 | 2021-07-02 09:01:01 | 2021-07-02 09:21:01 | 80 |
2 | 1002 | 9001 | 2021-09-05 19:01:01 | 2021-09-05 19:40:01 | 81 |
3 | 1002 | 9002 | 2021-09-02 12:01:01 | (NULL) | (NULL) |
4 | 1002 | 9003 | 2021-09-01 12:01:01 | (NULL) | (NULL) |
5 | 1002 | 9001 | 2021-07-02 19:01:01 | 2021-07-02 19:30:01 | 82 |
6 | 1002 | 9002 | 2021-07-05 18:01:01 | 2021-07-05 18:59:02 | 90 |
7 | 1003 | 9002 | 2021-07-06 12:01:01 | (NULL) | (NULL) |
8 | 1003 | 9003 | 2021-09-07 10:01:01 | 2021-09-07 10:31:01 | 86 |
9 | 1004 | 9003 | 2021-09-06 12:01:01 | (NULL) | (NULL) |
10 | 1002 | 9003 | 2021-09-01 12:01:01 | 2021-09-01 12:31:01 | 81 |
11 | 1005 | 9001 | 2021-09-01 12:01:01 | 2021-09-01 12:31:01 | 88 |
12 | 1006 | 9002 | 2021-09-02 12:11:01 | 2021-09-02 12:31:01 | 89 |
13 | 1007 | 9002 | 2020-09-02 12:11:01 | 2020-09-02 12:31:01 | 89 |
请计算2021年每个月里试卷作答区用户平均月活跃天数avg_active_days和月度活跃人数mau,上面数据的示例输出如下:
month | avg_active_days | mau |
202107 | 1.50 | 2 |
202109 | 1.25 | 4 |
解释:2021年7月有2人活跃,共活跃了3天(1001活跃1天,1002活跃2天),平均活跃天数1.5;2021年9月有4人活跃,共活跃了5天,平均活跃天数1.25,结果保留2位小数。
注:此处活跃指有交卷行为。
思路
- substr(submit_time,1,4):取出submit_time的前四位,即年份
- substr(submit_time,6,2):取出submit_time的5-6位,即月份
- concat(substr(submit_time,1,4),substr(submit_time,6,2)):将年份月份拼接在一起,例如:202107
- count(distinct uid,day(submit_time)):月度活跃天数,由于不同的用户可能会在同一天答题,所以要采用uid,day(submit_time)联合去重,比如说:2021年7月有2人活跃,共活跃了3天(1001活跃1天,1002活跃2天,其中2021-07-02两个用户都活跃了)
- count(distinct uid):月度活跃人数,由于同一用户在一个月中会答题多次,故需要去重
- round(...,2):保留两位小数
- 补充:使用
date_format(submit_time,
'%Y%m'
)可以直接取出年份和月份
代码
select concat(substr(submit_time,1,4),substr(submit_time,6,2)) as month,
round(count(distinct uid,day(submit_time))/count(distinct uid),2) as avg_active_days,count(distinct uid) as mau
from exam_record
where year(submit_time)='2021'
group by month
结果
SQL126 平均活跃天数和月活人数相关推荐
- dau计算公式_数据分析体系 — 用户粘性的两个计算指标(DAU/MAU和月人均活跃天数)...
很多运营都了解DAU(日活跃用户数)和MAU(月活跃用户数)的重要性,但在某些情况下这两个数值本身并不能反映出太多问题,这个时候就要引用到[DAU/MAU]的概念,即[日活/月活] 用户粘性的两个计算 ...
- 数据分析 — 用户粘性的两个计算指标(DAU/MAU和月人均活跃天数)
很多运营都了解DAU(日活跃用户数)和MAU(月活跃用户数)的重要性,但在某些情况下这两个数值本身并不能反映出太多问题,这个时候就要引用到[DAU/MAU]的概念,即[日活/月活]. 用户粘性的两个计 ...
- 数据分析体系 - 用户粘性(DAU/MAU 和 月人均活跃天数)
对于常见的App,用户粘性的取值范围就是3%~100%, 不同领域的App也会有不同的基准值, 例如移动游戏会以20%为基线, 而工具类App会以40%为基线. 用户粘性的两个计算指标: 1.DAU/ ...
- app数据分析体系 - 用户粘性 DAU,MAU 和 月人均活跃天数
用户粘性指标 DAU MAU 月均活跃天数 DAU 和 MAU 日活跃用户占月活跃用户的比例越高,表明用户对App的使用粘性越高. DAU,即:Daily Active User,指日活跃用户数 MA ...
- 腾讯人均月薪8万!第一季度财报发布:微信月活数恐怖,游戏平均日赚4亿
5月13日,腾讯发布截至2020年3月31日第一季未经审核综合业绩,报告期内,腾讯总营收1080.65亿元(152.52亿美元),同比增长26%:期内盈利为人民币294.03亿元(41.50亿美元), ...
- sql求平均日活_日活、周活(周重活)、月活 统计
效果展示: 以上数据为测试数据 实现思路: 按照查询天数往前推规定天 比如周.月 登录表为按月分表(数据量大约一张表1000W+数据) 关键sql: laravel5.1 框架 日活实现方式一: 不使 ...
- 数仓工具—Hive实战之日活跃周活跃月活(12)
日活跃周活跃月活 日活的定义非常简单,就是今日活跃的用户数,因为定义很简答,所以逻辑很简单,因此它的计算也非常简单.虽然简单,但是它却是我们的业务上非常重要的一个计算指标 日活会受到很多因素的影响,产 ...
- hive left outer join 子查询临时表_基于历史数据的用户访问次数,每天新老用户,日活,周活,月活的hive计算...
最近有一个需求,统计每天的新老用户,日活,周活,月活. 我们每天的增量数据会加入到hive历史数据表中,包含用户访问网站的一些信息,字段有很多,包括用户唯一标识guid. 当然了日活,周活,月活就是一 ...
- 统计每天的新老用户,日活,周活,月活
版权声明:转载请注明出处! https://blog.csdn.net/ddxygq/article/details/81391718 最近有一个需求,统计每天的新老用户,日活,周活,月活. 我们每天 ...
最新文章
- npm 卸载_GitHub 收购 npm:天下开源是一家,有个爸爸叫微软
- 有人顶贴,是对你的肯定
- 引导扇区维护工具linux,BOOTICE(引导扇区维护工具)
- 三维空间长度温度数量_风电叶片模具水循环温度控制机及其智能化控制解析
- hive中的单分区与多分区在hadoop上的对应关系
- Ubuntu16.04下面spyder切换虚拟环境下面的python版本
- CM: How is attachment version implemented
- 取石子游戏(信息学奥赛一本通-T1218)
- java集合之列表:ArrayList、Vector、LinkedList
- Python List相关函数使用实例
- torchtext用法
- 关于何种情况下使用DataGrid、DataList或Repeater的一些讨论(1) ambushaa [翻译] [转]
- 破B操作系统:(1)显示桌面图标
- XRD .txt 格式转 .xrdml格式
- 移动平均法又称滑动平均法、滑动平均模型法(Moving average,MA)
- 自动驾驶中ROS操作系统的重要性
- 基于RSelenium爬取中国裁判文书网文书数据
- 关于HTML学习的第一周周记
- Shim、Polyfill
- data在c语言中的作用,data是什么意思
热门文章
- 修改热血传奇服务器地址,传奇私服如何更改上线地点
- 科班演员陶奕菱亮相海南电影节:人生没有白走的路,每一步都算数
- 八道超经典指针面试题(三千字详解)
- 台式电脑c语言如何安装,体验篇—Type-C如何连接电脑_固态硬盘评测-中关村在线...
- Visual Studio.NET 术语表
- 动态网站开发(手动开发、使用myeclipse工具开发)
- DevOps Master课程总结:招聘DevOps工程师必问的12个问题
- 待完成 14 python进阶
- DO447构建高级作业工作流--创建作业模板调查以设置工作的变量
- java语言的Dao层设计(一)—— Dao层基本结构设计