select
	exam_id,
	date_format(start_time, '%Y%m') as start_month,
	count(*) as month_cnt,
    sum(count(*)) over (partition by exam_id order by date_format(start_time, '%Y%m')
		rows between unbounded preceding and current row) as cum_exam_cnt
from exam_record
group by exam_id, date_format(start_time, '%Y%m')
order by exam_id, start_month;