SQL COUNT() 函数


SQL COUNT() 函数用于计算表中行的数量。它是 SQL 操作中最常用的函数之一。在实际应用中,SQL COUNT() 函数经常与 SQL GROUP BY 语句一起使用,可以在 GROUP BY 语句后面加上 COUNT() 函数,用于计算每个分组中行的数量。

使用 COUNT() 函数的一般格式如下:

SELECT COUNT(column_name) FROM table_name;

其中 column_name 为需要计数的列名,table_name 为需要计数的表名。

SQL COUNT() 函数还可以使用 * 表示计算所有行的数量。例如:

SELECT COUNT(*) FROM table_name;

此时,将会计算 table_name 表中的所有行的数量。

需要注意的是,COUNT() 函数不会计算 NULL 值。如果需要计算 NULL 值的数量,可以使用 COUNT(column_name)、COUNT(*) 或 COUNT(1) 取代 COUNT(1)。

COUNT() 函数的一些例子:

  1. 统计表 emp 中有多少行记录:
SELECT COUNT(*) FROM emp;
  1. 统计表 emp 中 job 为 manager 的行数:
SELECT COUNT(*) FROM emp WHERE job='manager';
  1. 统计表 emp 中每个部门中员工数量:
SELECT deptno, COUNT(*) FROM emp GROUP BY deptno;

在这个例子中,使用 GROUP BY 语句,按照部门编号进行分组,然后针对每个组,统计员工数量,最后返回包括部门编号和员工数量的结果集。

  1. 统计表 emp 中每个部门中不同 job 岗位的员工数量:
SELECT deptno, job, COUNT(*) FROM emp GROUP BY deptno, job;

在这个例子中,使用 GROUP BY 语句,按照部门编号和 job 岗位进行分组,然后针对每个组,统计员工数量,最后返回包括部门编号、job 岗位和员工数量的结果集。

  1. 在使用 COUNT() 函数时,往往需要注意 SQL Server(Transact-SQL) 和 MySQL 在处理 COUNT() 函数时的区别。

在 SQL Server 中,当使用 COUNT() 函数计算表中 NULL 值的数量时,SQL Server(T-SQL) 会将 NULL 值也进行计算。

而在 MySQL 中,当使用 COUNT() 函数计算表中 NULL 值的数量时,MySQL 将不会将 NULL 值计算在内。为了解决这个问题,MySQL 提供了 COUNT(DISTINCT column_name) 函数来计算不同的值的数量,包括 NULL 值。