with t1 as (select uid, count(distinct date_format(submit_time,'%Y-%m')) as act_month_total from (select uid,submit_time from exam_record union all select uid,submit_time from practice_record) full_record group by uid), t2 as (select uid, count(distinct date(submit_time)) as act_days_2021 from (select uid,submit_time from exam_record where year(submit_time) = 2021 union all select uid,submit_time from practice_record where year(submit_time) = 2021 ) full_record group by uid), t3 as (select uid,count(distinct date(submit_time)) as act_days_2021_exam from exam_record where year(submit_time) = 2021 group by uid), t4 as (select uid,count(distinct date(submit_time)) as act_days_2021_question from practice_record where year(submit_time) = 2021 group by uid) select ui.uid,ifnull(act_month_total,0),ifnull(act_days_2021,0),ifnull(act_days_2021_exam,0),ifnull(act_days_2021_question,0) from user_info ui left join t1 using(uid) left join t2 using(uid) left join t3 using(uid) left join t4 using(uid) where ui.level in (6,7) order by act_month_total desc,act_days_2021 desc

京公网安备 11010502036488号