思路:
①找出每月的新增用户,即该uid所有作答时间里最早的那一行,用min窗口函数取出最早的start_time,当min(start_time)=start_time计为1,否则记为0;
②根据月份分组,取出uid数、累计新增用户数(把前述的1求和)、最大新增数(用max窗口函数)、累计新增数(用sum窗口函数)

select start_month as month, count(distinct uid) as mua, 
sum(new) as month_add_uv,
max(sum(new))over(order by start_month) as max_month_add_uv,
sum(sum(new))over(order by start_month) as cum_sum_uv
from(
select uid, date_format(start_time,'%Y%m') start_month, 
if(min(start_time)over(partition by uid order by start_time)=start_time,1,0) as new
from exam_record) as tb1
group by start_month