select uid,
			 date_format(start_time,'%Y%m') as start_month,
			 count(start_time) as total_cnt,
			 count(submit_time) as complete_cnt
from ( -- 6、7级用户在近三个月有试卷作答记录的用户 #uid集合为1001、1002
			select uid,
						 start_time,
						 submit_time
		  from (
						select er.uid,
									 start_time,
									 submit_time,
									 dense_rank() over(partition by uid order by date_format(start_time,'%Y%m') desc) as recent_month
						from exam_record as er
						left join user_info as ui
						on ui.uid=er.uid
						where level>=6  #这一步筛选掉了1003
						) as recent_table
			where recent_month<=3
			) as final_table
where uid in ( -- SQL试卷上未完成率较高的50%用户uid集合 -- #uid集合为1002、1003
							select uid
							from (
										select uid,
													 total_cnt,
													 incomplete_rate,
													 rank_num
										from (
													select uid,
																 incomplete_cnt,
																 total_cnt,
																 incomplete_cnt/total_cnt as incomplete_rate,
																 row_number() over(order by incomplete_cnt/total_cnt desc) as rank_num
													from (
																select uid,
																			 count(if(submit_time is null,1,null)) as incomplete_cnt,
																			 count(start_time) as total_cnt
																from exam_record as er
																left join examination_info as ei
																on ei.exam_id=er.exam_id
																where tag='SQL'
																group by uid
																) as inner_table
												 ) as table1
									 where rank_num<=ceiling((select count(distinct uid)/2 from exam_record))
									   ) as connect_table
								 )
group by uid,start_month
order by uid asc,start_month asc;