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

平均活跃天数和月活人数

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

要求

请计算2021年每个月里试卷作答区用户平均月活跃天数avg_active_days和月度活跃人数mau

思路

  1. 2021年: YEAR(submit_time) = 2021
  2. 每个月: group by month -- extract(YEAR_MONTH from submit_time) as month -- YEAR_MONTH 能直接取出年月
  3. 用户平均月活跃天数: round(count(distinct concat(uid,date(submit_time))) / count(distinct uid),2)

相同用户同一天多次答题只算一天所以这里要用distinct去除同一uid一天内多次答题。 并且,两个不同用户同一天答题算两天,所以为了识别是同一用户一天内多次答题还是不同用户同一天答题,我们用 concat(uid,date(submit_time) 将 uid 和 日期剪贴到一起,这样就能用count 正确的计算了。下面是concat(uid,date(submit_time) 的输出结果 (如果想好看点,中间可以加个空格分隔开)

alt

PS:这里只要date,不要把time一起加上去,因为同一天不同时间提交会导致重复计算。

  1. mau: count(distinct uid)

实现

select extract(YEAR_MONTH from submit_time) as month,
round(count(distinct concat(uid,date(submit_time))) / count(distinct uid),2)  as avg_active_days,
count(distinct uid) as mau
from exam_record
where year(submit_time) = 2021 and submit_time is not null
group by month
全部评论
hhh我也用了concat,但看评论区发现不用concat也行
点赞 回复 分享
发布于 2022-09-14 10:19 上海

相关推荐

感性的干饭人在线蹲牛友:🐮 应该是在嘉定这边叭,禾赛大楼挺好看的
点赞 评论 收藏
分享
评论
3
收藏
分享
牛客网
牛客企业服务