select exam_id,start_month,month_cnt,
       sum(month_cnt)over(partition by exam_id order by start_month) as cum_exam_cnt
from (
    select exam_id,date_format(start_time,'%Y%m') as start_month,
           count(1) as month_cnt
    from exam_record
    group by exam_id,date_format(start_time,'%Y%m')
    ) t