SELECT exam_id,start_month,month_cnt, sum(month_cnt) over ( partition by exam_id order by start_month asc # 窗口函数over()中如果使用排序,则前面的聚合函数按照当前行为最后一行进行聚合 ) as cum_exam_cnt from ( select exam_id, DATE_FORMAT(start_time, '%Y%m') as start_month, COUNT(start_time) as month_cnt from exam_record group by exam_id,start_month order by start_month ) as t1 group by exam_id,start_month order by exam_id,start_month