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

平均活跃天数和月活人数

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

WITH v1 AS(
    SELECT uid, REPLACE(LEFT(submit_time, 10), '-', '') month
    FROM exam_record
    WHERE submit_time IS NOT NULL AND YEAR(submit_time) = 2021
)

SELECT LEFT(month,6) the_date,
    ROUND(COUNT(DISTINCT uid, month)/COUNT(DISTINCT uid), 2) avg_active_days,
    COUNT(DISTINCT uid) mau
FROM v1
GROUP BY the_date
ORDER BY the_date

题解:

任务是求21年每月的平均活跃天数和月活人数

思路:

每月,那就是分组groupby

月活人数就是查找每月的uid的个数,去重

难点在平均活跃天数,最先我理解的是每月的记录出现的次数就是活跃的总天数,最先写的代码就是

ROUND(COUNT(*)/COUNT(DISTINCT uid), 2) avg_active_days,

但是根据题干,101活跃1天,这样理解,就是要找到每个用户活跃了几天,如果101用户在某一天有多次提交记录呢?那算一天还是多天?答案是一天

所以要使用distinct

全部评论

相关推荐

迷茫的大四🐶:自信一点,我认为你可以拿到50k,低于50k完全配不上你的能力,兄弟,不要被他们骗了,你可以的
点赞 评论 收藏
分享
06-12 17:46
门头沟学院 Java
运营你豪哥:来说重点: ​1.项目前置,时间倒序。​​ 2.​项目描述强化结果与量化效果(STAR原则里的R)。​​ ​3.个人技能精炼,明确掌握程度,突出核心。​​ ​4.增加强有力开头的个人总结部分。​​ 5.​优化教育背景(成绩排名)、合并奖项与活动。​​
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务