【SQL】COUNT()函数 用法详解

打印 上一主题 下一主题

主题 817|帖子 817|积分 2451

COUNT()函数

COUNT函数用法:COUNT ( [ALL | DISTINCT] column | expression | *)

  • ALL关键字指示统计所有值,而DISTINCT关键字欺压函数仅对不同的值进行操纵。 默认环境下,利用ALL选项。
  • 条件表达式

    • COUNT()函数中条件表达式加 OR null。例如,SELECT COUNT(number > 200 OR null) FROM vf;
    • COUNT()函数中条件表达式利用 if。例如,SELECT COUNT(if(number > 200, 1, null)) FROM vf;
    • COUNT()函数中条件表达式利用 case when。例如,SELECT COUNT(case when number > 200 then 1 end) FROM vf;

   剖析:sql 语句中count()有条件的时候为什么要加上or null?

例如count(sex= ‘男生’ or NULL) ,为什么要加上or NULL,直接count(sex=‘男生’)有什么问题吗?不就是要找sex= '男生’的数据吗,为什么要计算NULL的数据。

答案: 由于当 sex不是男生时 sex=‘男生’ 结果false。不是 NULL, count在值是NULL是不统计数,(count(‘恣意内容’)都会统计出所有记载数,由于count只有在遇见null时不计数,即count(null)==0,因此前者单引号内不管输入什么值都会统计出所有记载数),至于加上or NULL , 很像其他编程里的or运算符,第一个表达式是true就是不执行or背面的表达式,第一个表达式是false 执行or背面的表达式 。当sex不为男生时,sex= ‘男生’ or NULL 的结果是NULL,Count才不会统计上这条记载数
  记载自己的错误:

语句:
Right:select (select count(user_id) from Users)
Error:select count(select user_id from Users)
错误示例:count()里边不能加查询语句啊!!!
  1. -- select contest_id, round(count(*)/count(select Users.user_id from Users)*100, 2) as percentage
复制代码
参考文献:
sql—count() 中加表达式计数
count加表达式,Mysql中Count函数的精确利用!
SQL聚合函数
数据库的高级查询二:聚合函数(SUM、MAX,MIN,AVG,COUNT)

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张国伟

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表