1.count(student_id) 返回学生id的行数,如果是null,则不计入
2.如果需要得到【成绩为90分】以及缺考的学生(成绩为null)人数,count(score = 90 or null)
为什么要加 or null 部分呢?
因为当score = 90 时返回为True,score不等于90时返回为False,而只有值为null时不计数,无论是True还是False都会计数。
3.还可以通过其他两种方式获得限制条件后的记录数量。
如果需要得到【成绩大于90分】的学生人数,
(1)sum (case when score > 90 then 1 else 0 end)
(2)count (if(score > 90, 1, null))
或者可以省略去if函数里的null,if函数会判断score函数是否大于90,如果满足返回1,不满足默认返回null
count (if(score > 90, 1))
综上所述,count加条件的核心依据是count对null不计数
4.如果想对null值也同样计数,可使用count(1),count(1)会对所有行计数
eg:通过【成绩】统计有多少学生参加考试,包括缺考

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐