题解 | #平均活跃天数和月活人数#

平均活跃天数和月活人数

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


#sql#
全部评论

相关推荐

4 1 评论
分享
牛客网
牛客企业服务