目录

  1. SQL COUNT() 函数简介
  2. SQL COUNT() 函数的语法
  3. SQL COUNT() 函数的使用示例
  4. 注意事项
  5. 参考资料

SQL COUNT() 函数简介

COUNT() 函数是一个聚合函数,用于计算某个列或所有行的记录数量。它常用于计算符合特定条件的记录数,或者获取一个数据集的总行数。COUNT() 函数对 NULL 值的处理有特殊之处,COUNT(*) 会计算所有行的记录数,包括 NULL 值,而 COUNT(column_name) 只会计算该列中非 NULL 的值。


SQL COUNT() 函数的语法

COUNT(expression)

参数说明:

  • expression:可以是列名、表达式或其他值。对于 COUNT(column_name),如果列包含 NULL 值,那么 NULL 不会被计入。如果使用 COUNT(*),则计算所有的行,包括包含 NULL 的行。

返回值:

  • 返回结果为整数,表示符合条件的行数。

SQL COUNT() 函数的使用示例

示例 1:计算所有员工的数量

SELECT COUNT(*) AS total_employees
FROM employees;

该查询将返回 employees 表中的所有行数,包括 NULL 值的行。即便列中有 NULLCOUNT(*) 也会计算它们。

示例 2:计算特定部门员工的数量

SELECT department, COUNT(*) AS employees_in_department
FROM employees
WHERE department = 'IT'
GROUP BY department;

该查询将返回 “IT” 部门的员工数量,按 department 列进行分组。

示例 3:计算具有有效工资的员工数量

SELECT COUNT(salary) AS employees_with_salary
FROM employees;

该查询会计算 salary 列中非 NULL 值的数量,即返回具有有效工资信息的员工数量。

示例 4:计算产品表中非 NULL 价格的产品数量

SELECT COUNT(price) AS products_with_price
FROM products;

该查询将返回 products 表中价格非 NULL 的产品数量。


注意事项

  1. COUNT(*)COUNT(column_name) 的区别
    • COUNT(*) 计算表中的所有行数,包括含有 NULL 值的行。
    • COUNT(column_name) 只计算指定列中非 NULL 值的行数。
  2. 性能
    • 在没有适当索引的情况下,COUNT() 函数可能会对大型表造成性能影响。
    • 使用 COUNT(*) 时,数据库需要扫描所有行,而不是只计算某些列的记录数。
  3. NULL 值
    • COUNT(column_name) 会忽略 NULL 值,因此如果列中包含 NULL,它们不会被计入计算中。

参考资料