题目描述

用户在牛客试卷作答区作答记录存储在表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 平均活跃天数和月活人数相关推荐

  1. dau计算公式_数据分析体系 — 用户粘性的两个计算指标(DAU/MAU和月人均活跃天数)...

    很多运营都了解DAU(日活跃用户数)和MAU(月活跃用户数)的重要性,但在某些情况下这两个数值本身并不能反映出太多问题,这个时候就要引用到[DAU/MAU]的概念,即[日活/月活] 用户粘性的两个计算 ...

  2. 数据分析 — 用户粘性的两个计算指标(DAU/MAU和月人均活跃天数)

    很多运营都了解DAU(日活跃用户数)和MAU(月活跃用户数)的重要性,但在某些情况下这两个数值本身并不能反映出太多问题,这个时候就要引用到[DAU/MAU]的概念,即[日活/月活]. 用户粘性的两个计 ...

  3. 数据分析体系 - 用户粘性(DAU/MAU 和 月人均活跃天数)

    对于常见的App,用户粘性的取值范围就是3%~100%, 不同领域的App也会有不同的基准值, 例如移动游戏会以20%为基线, 而工具类App会以40%为基线. 用户粘性的两个计算指标: 1.DAU/ ...

  4. app数据分析体系 - 用户粘性 DAU,MAU 和 月人均活跃天数

    用户粘性指标 DAU MAU 月均活跃天数 DAU 和 MAU 日活跃用户占月活跃用户的比例越高,表明用户对App的使用粘性越高. DAU,即:Daily Active User,指日活跃用户数 MA ...

  5. 腾讯人均月薪8万!第一季度财报发布:微信月活数恐怖,游戏平均日赚4亿

    5月13日,腾讯发布截至2020年3月31日第一季未经审核综合业绩,报告期内,腾讯总营收1080.65亿元(152.52亿美元),同比增长26%:期内盈利为人民币294.03亿元(41.50亿美元), ...

  6. sql求平均日活_日活、周活(周重活)、月活 统计

    效果展示: 以上数据为测试数据 实现思路: 按照查询天数往前推规定天 比如周.月 登录表为按月分表(数据量大约一张表1000W+数据) 关键sql: laravel5.1 框架 日活实现方式一: 不使 ...

  7. 数仓工具—Hive实战之日活跃周活跃月活(12)

    日活跃周活跃月活 日活的定义非常简单,就是今日活跃的用户数,因为定义很简答,所以逻辑很简单,因此它的计算也非常简单.虽然简单,但是它却是我们的业务上非常重要的一个计算指标 日活会受到很多因素的影响,产 ...

  8. hive left outer join 子查询临时表_基于历史数据的用户访问次数,每天新老用户,日活,周活,月活的hive计算...

    最近有一个需求,统计每天的新老用户,日活,周活,月活. 我们每天的增量数据会加入到hive历史数据表中,包含用户访问网站的一些信息,字段有很多,包括用户唯一标识guid. 当然了日活,周活,月活就是一 ...

  9. 统计每天的新老用户,日活,周活,月活

    版权声明:转载请注明出处! https://blog.csdn.net/ddxygq/article/details/81391718 最近有一个需求,统计每天的新老用户,日活,周活,月活. 我们每天 ...

最新文章

  1. npm 卸载_GitHub 收购 npm:天下开源是一家,有个爸爸叫微软
  2. 有人顶贴,是对你的肯定
  3. 引导扇区维护工具linux,BOOTICE(引导扇区维护工具)
  4. 三维空间长度温度数量_风电叶片模具水循环温度控制机及其智能化控制解析
  5. hive中的单分区与多分区在hadoop上的对应关系
  6. Ubuntu16.04下面spyder切换虚拟环境下面的python版本
  7. CM: How is attachment version implemented
  8. 取石子游戏(信息学奥赛一本通-T1218)
  9. java集合之列表:ArrayList、Vector、LinkedList
  10. Python List相关函数使用实例
  11. torchtext用法
  12. 关于何种情况下使用DataGrid、DataList或Repeater的一些讨论(1) ambushaa [翻译] [转]
  13. 破B操作系统:(1)显示桌面图标
  14. XRD .txt 格式转 .xrdml格式
  15. 移动平均法又称滑动平均法、滑动平均模型法(Moving average,MA)
  16. 自动驾驶中ROS操作系统的重要性
  17. 基于RSelenium爬取中国裁判文书网文书数据
  18. 关于HTML学习的第一周周记
  19. Shim、Polyfill
  20. data在c语言中的作用,data是什么意思

热门文章

  1. 修改热血传奇服务器地址,传奇私服如何更改上线地点
  2. 科班演员陶奕菱亮相海南电影节:人生没有白走的路,每一步都算数
  3. 八道超经典指针面试题(三千字详解)
  4. 台式电脑c语言如何安装,体验篇—Type-C如何连接电脑_固态硬盘评测-中关村在线...
  5. Visual Studio.NET 术语表
  6. 动态网站开发(手动开发、使用myeclipse工具开发)
  7. DevOps Master课程总结:招聘DevOps工程师必问的12个问题
  8. 待完成 14 python进阶
  9. DO447构建高级作业工作流--创建作业模板调查以设置工作的变量
  10. java语言的Dao层设计(一)—— Dao层基本结构设计