分析题目

题目条件:

三个概念,已完成,未完成,已做答的题目

初始提交版本:只利用了字段exam_id

select total_pv ,complete_pv,complete_exam_cnt
from (select count(exam_id) as total_pv from  exam_record) e1,
(select count(exam_id) as complete_pv from  exam_record  where submit_time is not null
or score is not null ) e2,
(select count(distinct exam_id) as complete_exam_cnt from  exam_record where submit_time is not null
or score is not null ) e3

改进:根据条件选取不同字段

1.利用count(null)=0 和if(条件,表达式1,表达式2)的知识点可以化子查询为更简洁的句子

count(distinct(if(submit_time is null,null,exam_id ))) as complete_exam_cnt from  exam_record