【鲸析】题解 | #平均活跃天数和月活人数#

平均活跃天数和月活人数

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)平均活跃天数:用户的总活跃天数/月活人数

注意点

  1. `date_format(submit_time, '%Y%m')` 是常见的时间转换方法,常用语年月日转换年月,再聚合
  2. `YEAR(submit_time)= '2021'`和extract类似,提取年份的
  3. 为什么是`date_format(start_time,"%Y%m%d")`?因为表格里精确到时分秒了,我们要的颗粒度是天,这里别忘了!
  4. 为什么要`distinct uid, date_format(start_time,"%Y%m%d")`?因为可能多个用户在同一天登录,但是这样我们也要计算多个日期,哪怕此时的`date_format(start_time,"%Y%m%d")`,但是uid不同。

全部评论

相关推荐

10-09 22:05
666 C++
找到工作就狠狠玩CSGO:报联合国演讲,报电子烟设计与制造
点赞 评论 收藏
分享
听说改名字就能收到offer哈:Radis写错了兄弟
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务