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

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

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

一种更少嵌套的sql实现方法

select uid,start_month,total_cnt,complete_cnt
from (
		select uid,
					 dense_rank() over(partition by uid order by date_format(start_time,'%Y%m') desc) as recent_month,
					 date_format(start_time,'%Y%m') as start_month,
					 count(start_time) as total_cnt,
					 count(submit_time) as complete_cnt
		from exam_record
		left join user_info using(uid)
		where level=6 or level=7
		group by uid,start_month
		) as t2
where recent_month<=3 and uid in (
		select uid
		from (
			select uid,row_number() over(order by incomplete_rate desc) as ranking
			from (
				select uid,
							 count(if(submit_time is null,1,null))/count(start_time) as incomplete_rate
				from exam_record
				left join examination_info using(exam_id)
				where tag='SQL'
				group by uid
				) as t
		) as t1
		where ranking<=ceiling((select count(distinct uid) from exam_record
													 left join examination_info using(exam_id)
													 where tag='SQL')/2)
																	)
order by uid,start_month
全部评论

相关推荐

点赞 评论 收藏
分享
06-17 21:57
门头沟学院 Java
白友:噗嗤,我发现有些人事就爱发这些,明明已读不回就行了,就是要恶心人
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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