第31期 SQL中COUNT(*)与COUNT(column)区别

SELECT COUNT(*) 和 COUNT(column) 是不同的

在SQL中, COUNT(*) 和  COUNT(column) 是两个常用的聚合函数,但它们的行为和结果可能会有所不同。

理解它们之间的区别对于编写正确的查询非常重要。

COUNT(*)

COUNT(*) 用于计算表中的行数,包括所有行,无论列中的值是否为  NULL。它的作用是统计表中的总行数。

例如:

SELECT COUNT(*) FROM employees;

这条查询会返回  employees 表中的总行数,无论某些列是否包含  NULL 值。

COUNT(column)

COUNT(column) 则用于计算指定列中非  NULL 值的数量。它只会统计那些在指定列中有值的行。

例如:

SELECT COUNT(employee_id) FROM employees;

这条查询会返回  employee_id 列中非  NULL 值的数量。如果某些行的  employee_id 为  NULL,这些行将不会被计入总数。

区别总结

  • COUNT(*) 统计表中的所有行,包括  NULL 值。

  • COUNT(column) 只统计指定列中非  NULL 值的行。

示例

假设我们有一个  employees 表,数据如下:

employee_id name department
1 John Sales
2 Jane NULL
3 NULL HR
4 Alice IT
  • SELECT COUNT(*) FROM employees; 会返回  4,因为表中有4行。

  • SELECT COUNT(name) FROM employees; 会返回  3,因为  name 列中有3个非  NULL 值。

  • SELECT COUNT(department) FROM employees; 会返回  3,因为  department 列中有3个非  NULL 值。

结论

在使用  COUNT 函数时,务必根据你的需求选择正确的形式。

如果你需要统计表中的总行数,使用  COUNT(*)

如果你只关心某一列中非  NULL 值的数量,则使用  COUNT(column)

COUNT(*) :统计所有行,无论列值是否为 NULL。

COUNT(column) :只统计该列中非空值的数量。

理解这两者的区别对于编写正确的 SQL 查询至关重要!


请使用浏览器的分享功能分享到微信等