题解 | #平均活跃天数和月活人数#
平均活跃天数和月活人数
https://www.nowcoder.com/practice/9e2fb674b58b4f60ac765b7a37dde1b9
难点:
1.活跃的定义,有交卷行为,所以以下关于活跃人数和活跃天数的统计,都是围绕字段submit_time来展开
每月的用户平均活跃天数和月活跃人数,是按照月来进行聚类 所以group by month
2.每月的用户平均活跃天数=本月用户活跃的天数总和/总的活跃用户数
注意:
计算本月用户活跃的总天数的时候,需要提取两个条件,用户uid +用户交卷日期中的天day,考虑到同一天用户多次登录的情况,要对用户uid作去重处理
活跃用户数中需要去重,用到distinct
3.提取日期
将2021-01-05转换为202208 要用到date_format(submit_time,'%Y%m')
要注意m要小写才能代表月份,小写d才能代表天数数字
公式
正确代码
select date_format(submit_time,'%Y%m') month, round( count(distinct uid,date_format(submit_time,'%Y%m%d'))/ count(distinct uid),2) avg_active_days, round(count(distinct uid),2) mau from exam_record where submit_time is not null and year(submit_time) = '2021' group by month