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

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

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

易错点: 1.对于各个数据都为零的用户,也要记录在表中:用left join 2.date_format(time,'%y%m%d')函数掌握不熟悉 3.count函数里用case when then end之前没用过,新思路 4.问题拆分求解

select uid,
    count(distinct act_month) as act_month_total,
    count(distinct case when year(act_day)=2021 then act_day end) 
        as act_day_2021,
    count(distinct case when year(act_day)=2021 and tag='exam' then act_day end) 
        as act_days_2021_exam,
    count(distinct case when year(act_day)=2021 and tag='practice' then act_day end)
        as act_days_2021_question   
from user_info
left join (select uid,date_format(start_time,'%y%m%d') as act_day,left(start_time,7) as act_month,'exam' as tag
    from exam_record
    union all
    select uid,date_format(submit_time,'%y%m%d') as act_day,left(submit_time,7) as act_month,'practice' as tag
    from practice_record) as t using(uid)
where level in(6,7)
group by uid 
order by act_month_total desc,act_day_2021 desc





全部评论

相关推荐

Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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