select uid,nick_name,achievement
from user_info
where nick_name like "牛客%号" and achievement between 1200 and 2500 and uid in (
select uid
from
(with a as (select uid,date_format(start_time,"%Y%m") date1
from exam_record
union all
select uid,date_format(submit_time,"%Y%m") date1
from practice_record) /*上下连接两表,查找最近活跃时间*/
select *,dense_rank() over(partition by uid order by date1 desc) rankin
from a) a1 /* 开窗找最近时间*/
where rankin=1 and date1="202109")