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

【场景】:平均活跃天数和月活人数

【分类】:分组查询、count(distinct 2个字段)

分析思路

难点:

1.如何计算活跃天数?对日期、用户去重

如何计算平均活跃天数

可能存在的情况:

一、2个不同用户在同一天有记录,活跃天数为2,活跃人数为2。

二、2个不同用户在不同天各有一条记录,活跃天数为2,活跃人数为2。

三、1个用户在同一天有2条记录,活跃天数为1,活跃人数为1。

  • 使用count(distinct day(submi_time))计算活跃天数,在情况一中得到活跃天数为1,与题目要求不符;
  • 使用count(day(submi_time))计算活跃天数,在情况三中得到活跃天数为2,与题目要求不符;
  • 使用count(distinct uid, day(submi_time))计算活跃天数,在三种情况中均符合题目要求。

count(distinct 2个字段):将2个字段作为一个字段看待

求解代码

方法一:

#平均活跃天数  
select
    date_format(start_time,'%Y%m') 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
and submit_time is not null
group by month
全部评论
你这个说法才是对的,评论中很多人说忽略UID的筛选是基于情况3,实际上情况1才对。要正确定位情况1才能理解UID的去重
点赞 回复 分享
发布于 2023-01-05 12:36 湖北

相关推荐

大飞的诡术妖姬:之前看b站多明海有个说法,日本就业竞争非常低的原因不光是毕业学生少,还有很多人干两年不喜欢职场氛围就辞职躺平,位置也空了很多,论吃苦耐劳还得看咱们
点赞 评论 收藏
分享
Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
买蜜雪也用卷:我觉得应该没有哪个人敢说自己熟练使用git,代码分支一复杂还是得慢慢寻思一下的,不过基本的拉代码提交代码还有分支什么的是应该会
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-26 14:50
人力小鱼姐:有后面墨迹那两句的时间问题早回答完了
点赞 评论 收藏
分享
评论
13
7
分享

创作者周榜

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