【鲸析】题解 | #平均活跃天数和月活人数#
平均活跃天数和月活人数
https://www.nowcoder.com/practice/9e2fb674b58b4f60ac765b7a37dde1b9
select date_format(submit_time, '%Y%m') as month, round(count(distinct uid, date_format(start_time,"%Y%m%d"))/count(distinct uid),2), count(distinct uid) as mau from exam_record where YEAR(submit_time)= '2021' group by 1
- 公众号:鲸析
- 小红书:鲸鲸说数据
思路
首先,本题目搞清楚两个指标的计算逻辑,也就是含义,很多同学没捋清楚上来就做,效率就比较低。
限制条件
(1)submit_time的年份是2021
指标解析
(1)月活人数:每个月的uid滤重个数
(2)平均活跃天数:用户的总活跃天数/月活人数
注意点
- `date_format(submit_time, '%Y%m')` 是常见的时间转换方法,常用语年月日转换年月,再聚合
- `YEAR(submit_time)= '2021'`和extract类似,提取年份的
- 为什么是`date_format(start_time,"%Y%m%d")`?因为表格里精确到时分秒了,我们要的颗粒度是天,这里别忘了!
- 为什么要`distinct uid, date_format(start_time,"%Y%m%d")`?因为可能多个用户在同一天登录,但是这样我们也要计算多个日期,哪怕此时的`date_format(start_time,"%Y%m%d")`,但是uid不同。