with t1 as (select count(1) as total_pv, 'answer' as result from exam_record),

t2 as (select count(1) as complete_pv,'answer' as result from exam_record
where start_time is not null and score is not null),

t3 as (select count(1)  as complete_exam_cnt,'answer' as result from(
select exam_id from exam_record
where start_time is not null and score is not null
group by exam_id) as mid_df),

t5 as (select total_pv,complete_pv,complete_exam_cnt,t3.result from t3
join
(select total_pv,complete_pv,t1.result as result from t1
join t2
on t1.result = t2.result) as t4
on t3.result = t4.result)

select total_pv,complete_pv,complete_exam_cnt from t5