SELECT COUNT(CASE WHEN start_time IS NOT NULL THEN 1 ELSE NULL END) total_pv, 
    COUNT(CASE WHEN submit_time IS NOT NULL THEN 1 ELSE NULL END) total_pv, 
    COUNT(DISTINCT CASE WHEN SCORE IS NULL THEN NULL ELSE exam_id END) complete_exam_cnt
FROM exam_record

题解:

任务:作答的次数,作答完成的次数,作答完成的卷子数

思路:

作答的次数是根据开始时间来计算的,可以统计开始时间的列数,或者全部记录的列数,这里我弄复杂了,COUNT函数会自动忽略NULL的

作答完成的次数可以根据提交时间或者得分来统计

作答完成的卷子数要难点,要根据提交时间或者得分是否为null的情况来决定,如果是null,那就没有完成。否则就完成了,就来统计卷子数,记得要去重