# 查询出有未完成状态的试卷id select distinct exam_id from exam_record where submit_time is null # 查询有未完成状态的试卷的未完成数incomplete_cnt和未完成率incomplete_rate select exam_id, sum(if(submit_time is null, 1, 0)) incomplete_cnt, round(avg(submit_time is null),3) incomplete_rate from exam_record where exam_id in ( select distinct exam_id from exam_record where submit_time is null ) group by exam_id;
思路:
(1)先查询出有未完成状态试卷的试卷id
(2)以试卷id为分组依据来计算各试卷的未完成数和未完成率,应当善用sum()和avg()嵌套布尔值