聚合函数的使用这里不在一一重复,很简单,网上一查一大堆。这里记录一下容易忽略的地方。
我们平时使用聚合函数通常知识使用一个列作为参数,如上图,其实对于count()函数他的参数不止一个,可以加参数(其实就是加条件,计算满足条件的行数)。
如:题目
select
count(exam_id) as total_pv,
count(submit_time) as complete_pv,
count(distinct if(submit_time is not null, exam_id, null)) as complete_exam_cnt
from exam_record
第三行的count对需要计数的行加条件
也可以这样写
select
count(start_time) as total_pv,
count(submit_time) as complete_pv,
count(distinct exam_id and score is not null) as complete_exam_cnt
from exam_record;