题解 | #每份试卷每月作答数和截止当月的作答总数。#
每份试卷每月作答数和截止当月的作答总数。
https://www.nowcoder.com/practice/5f1cbe74c682485aa73e4c2b30f04a62
#方法1 select * from( select exam_id, date_format(start_time,"%Y%m") start_month, count(uid) month_cnt from exam_record group by exam_id,start_month )t1 left join (select exam_id,start_month,max(ranking) cum_exam_cnt from( select exam_id, date_format(start_time,"%Y%m") start_month, row_number() over(partition by exam_id order by date_format(start_time,"%Y%m")) ranking from exam_record )t group by exam_id,start_month ) t2 using(exam_id,start_month) #方法2 select exam_id,date_format(start_time,"%Y%m") start_month,count(uid) month_cnt,any_value(_exam_cnt) cum_exam_cnt from( select *, (select count(uid) from exam_record d2 where d1.exam_id=d2.exam_id and date_format(d2.start_time,"%Y%m")<= date_format(d1.start_time,"%Y%m")) _exam_cnt from exam_record d1 ) t group by exam_id,start_month