题解 | #每个6/7级用户活跃情况#

每个6/7级用户活跃情况

https://www.nowcoder.com/practice/a32c7c8590324c96950417c57fa6ecd1

  • 先合并两个日期记录表,注意标识来源 `src`
  • 后左连接条件去重统计,合理使用时间函数
  • 最后分组排序
  • select uid, 
    count(distinct date_format(submit_time,'%Y%m')) act_month_total,
    count(distinct if(year(submit_time) = 2021, date(submit_time),null)) act_days_2021,
    count(distinct if(src = 'exam' and year(submit_time)=2021, date(submit_time), null)) act_days_2021_exam,
    count(distinct if(src = 'practice' and year(submit_time)=2021, date(submit_time), null)) act_days_2021_question
    from user_info
    left join (
        select uid,start_time submit_time, 'exam' src
        from exam_record
        union all
        select uid, submit_time, 'practice' src
        from practice_record
    ) un using(uid)
    where level in (6,7)
    group by uid
    order by act_month_total desc, act_days_2021 desc


#sql#
全部评论

相关推荐

想问问各位大佬,同时拿到了美团和虾皮的前端实习,该怎么选呀?
寒小枫:实习选美团 秋招同薪资选虾皮
投递美团等公司10个岗位 >
点赞 评论 收藏
分享
01-23 14:54
同济大学 Java
热爱敲代码的程序媛:给你提几点【专业技能】这个模块里面可优化的地方:1.【具备JVM调优经验】可以去b站上搜一下JVM调优的视频,估计一两个小时凭你的学习能力就能掌握JVM调优的实践方面的技能。2.【MySql优化】MySql这一栏,你去b站或者找个博客看看MySql优化,学一下,如果你本身比较熟悉MySql语句的话,那基本半天时间凭你的学习能力MySql语句优化方面的技能你也能掌握个差不多。以上1,2两点主要是因为我看你专业技能大部分都说的是偏理论,没有写应用。再就是最后,你结合你的项目,想一想你的项目中哪些sql语句是可以用MySql优化的,到时候你面试的时候也好结合着说一下。
点赞 评论 收藏
分享
01-14 19:01
吉首大学 Java
黑皮白袜臭脚体育生:加个项目吧,一般需要两个项目一业务一轮子呢,简历统一按使用了什么技术实现了什么功能解决了什么问题或提升了什么性能指标来写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务