题解 | #连续两次作答试卷的最大时间窗#

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

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

select uid,start_month,total_cnt,complete_cnt from
(select uid,
date_format(start_time,'%Y%m') start_month,
count(start_time) total_cnt,
count(submit_time) complete_cnt,
dense_rank() over (partition by uid order by date_format(start_time,'%Y%m') desc) t_rank
from exam_record
where uid in 
(select a.uid from 
(select uid,
avg(case when submit_time is null then 1 else 0 end) incomplete_rate,
percent_rank() over (order by avg(case when submit_time is null then 1 else 0 end) desc) pr
from exam_record r inner join examination_info i
on r.exam_id = i.exam_id
where i.tag = 'SQL'
group by uid) as a 
inner join user_info i on i.uid = a.uid
where (i.level>5)
and pr <= 0.5)
group by uid,start_month
order by uid,start_month) as b
where t_rank <= 3
这题难在未完成率较高的50%用户中的理解上,理清楚就好了。
全部评论

相关推荐

不愿透露姓名的神秘牛友
11-24 20:55
阿里国际 Java工程师 2.7k*16.0
程序员猪皮:没有超过3k的,不太好选。春招再看看
点赞 评论 收藏
分享
牛客868257804号:九个中铁八个中建
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务