题解 | #未完成率较高的50%用户近三个月答卷情况#

未完成率较高的50%用户近三个月答卷情况

https://www.nowcoder.com/practice/3e598a2dcd854db8b1a3c48e5904fe1c

select t3.*
from
(
 select
uid
,start_month
,sum(total_cnt) total_cnt
,sum(complete_cnt) complete_cnt
from
(
  select
uid
,date_format(start_time,'%Y%m') start_month
,count(start_time) total_cnt
,count(submit_time) complete_cnt
,row_number()over(partition by uid order by date_format(start_time,'%Y%m'desc) rn
from exam_record
left join user_info using(uid)
where level in('6','7')
group by uid,date_format(start_time,'%Y%m')
) t2
where t2.rn<=3 
group by uid
,start_month   
) t3
join
(
select
uid
from
(
select
uid,ntile(2)over(order by rn) nt
from 
(
select
uid
,count(submit_time) finish
,count(a.exam_id) al
,row_number()over(order by count(case when submit_time is null then 1 else null end) /count(a.exam_id) desc) rn
from exam_record a
left join examination_info b on a.exam_id=b.exam_id
where tag='SQL'
group by uid
) t
) t1
where nt=1

) t4 using(uid)
order by uid,start_month
按照 t,t1,t2,t3,t4分别写逻辑,注意ntile()over()用法



#MySQL#
全部评论

相关推荐

不愿透露姓名的神秘牛友
10-05 10:13
已编辑
HHHHaos:让这些老登来现在秋招一下,简历都过不去
点赞 评论 收藏
分享
ProMonkey2024:5个oc?厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了(别的帖子偷来的,现学现卖😋)
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务