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

COUNT()函数

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

  1. ALL关键字指示统计所有值,而DISTINCT关键字强制函数仅对不同的值进行操作。 默认情况下,使用ALL选项。
  2. 条件表达式
    • 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()里边不能加查询语句啊!!!

sql 复制代码
-- 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)

相关推荐
代码老y1 分钟前
Redis 生产实战 7×24:容量规划、性能调优、故障演练与成本治理 40 条军规
数据库·redis·缓存
sevevty-seven14 分钟前
Redis 事务错误处理机制与开发应对策略
数据库·redis·log4j
SoFlu软件机器人1 小时前
告别手动报表开发!描述数据维度,AI 自动生成 SQL 查询 + Java 导出接口
java·数据库·sql
GBASE1 小时前
GBASE南大通用技术分享:GBase 8s 数据库中 ROW 类型的使用简介(下)
数据库
Fireworkitte1 小时前
时序数据库
数据库·时序数据库
DolphinDB1 小时前
DolphinDB × Vanna:构建支持自然语言查询的企业级 RAG 系统
数据库
MQLYES2 小时前
Doris基础-架构、数据模型、数据划分
大数据·数据库
神仙别闹3 小时前
基于 .Net Core+MySQL开发(WinForm)翻译平台
数据库·mysql·.netcore
dexianshen3 小时前
Linux中的数据库操作基础
数据库
城里有一颗星星4 小时前
7.事务操作
数据库·mysql·goland