MySQL聚合函数

144 阅读1分钟

聚合函数的使用这里不在一一重复,很简单,网上一查一大堆。这里记录一下容易忽略的地方。

image.png

我们平时使用聚合函数通常知识使用一个列作为参数,如上图,其实对于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;