跳到主要内容

SQL COUNT()函数

提示
  1. 基本用途:SQL中的COUNT()函数用于返回查询结果中的记录数。
  2. 灵活应用COUNT()可以与WHEREDISTINCTGROUP BYHAVING子句配合使用,以满足特定条件下的计数需求。
  3. 处理NULL值:使用COUNT(*)计算所有记录,包括含有NULL值的记录;而COUNT(column_name)仅计算指定列中非NULL值的记录数。

SQL COUNT() 函数返回查询返回的记录数。

示例

SELECT COUNT(*)
FROM Orders;

Count() 语法

SQL COUNT() 函数的语法是:

SELECT COUNT(expression)
FROM table_name;

这里,

  • expression 可以是 *、列名或诸如 DISTINCT column_name 的表达式
  • table_name 是表的名称

例如,

SELECT COUNT(*)
FROM Customers;

这里,上述 SQL 命令计算并返回 Customers 表中的行数。

如何在 SQL 中使用 COUNT() 函数

COUNT() 一起使用别名

在上面的示例中,结果集中的字段名是 COUNT(*)

也可以使用 AS 关键字为这些字段赋予自定义名称。例如,

SELECT COUNT(*) AS total_customers
FROM Customers;

这里,字段名 COUNT(*) 在结果集中被替换为 total_customers

如何在 SQL 中与 COUNT() 函数一起使用别名

WHERE 一起使用 COUNT()

我们可以将 COUNT()WHERE 一起使用,以计算具有特定列值的行数:

SELECT COUNT(country) AS customers_in_UK
FROM Customers
WHERE country = 'UK';

这里,SQL 命令返回国家为 UK 的客户数。

如何在 SQL 中与 WHERE 一起使用 COUNT()

DISTINCT 一起使用 COUNT()

如果我们需要计算唯一行的数量,我们可以使用带有 DISTINCT 子句的 COUNT() 函数。例如,

SELECT COUNT(DISTINCT country)
FROM Customers;

这里,SQL 命令返回不同国家的数量。

一起使用 DISTINCT 和 COUNT 来计算唯一值的数量

GROUP BY 一起使用 COUNT()

COUNT() 函数可以与 GROUP BY 子句一起使用,以计算具有相似值的行数。例如,

SELECT country, COUNT(*) AS customers
FROM Customers
GROUP BY country;

这里,SQL 命令返回每个国家中的客户数量。

如何在 SQL 中与 GROUP BY 一起使用 COUNT() 函数

HAVING 子句一起使用 COUNT()

我们可以将 COUNT()[HAVING](/tutorials/sql/having) 子句一起使用,如下所示:

SELECT COUNT(customer_id), country
FROM Customers
GROUP BY country
HAVING COUNT(customer_id) > 1;

这里,SQL 命令:

  1. country 分组计算行数
  2. 如果它们的计数大于1,则返回结果集。

COUNT()NULL

  1. SELECT COUNT(*) 返回结果集中的所有记录计数,不论 NULL 值。
  2. SELECT COUNT(column_name) 返回指定列中包含非 NULL 值的记录计数