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

平均活跃天数和月活人数

https://www.nowcoder.com/practice/9e2fb674b58b4f60ac765b7a37dde1b9

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


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')可以直接取出年份和月份

全部评论

相关推荐

求offer的大角牛:不吃香菜
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务