SQL COUNT()函数
提示
- 基本用途:SQL中的
COUNT()
函数用于返回查询结果中的记录数。 - 灵活应用:
COUNT()
可以与WHERE
、DISTINCT
、GROUP BY
和HAVING
子句配合使用,以满足特定条件下的计数需求。 - 处理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
表中的行数。
与 COUNT()
一起使用别名
在上面的示例中,结果集中的字段名是 COUNT(*)
。
也可以使用 AS
关键字为这些字段赋予自定义名称。例如,
SELECT COUNT(*) AS total_customers
FROM Customers;
这里,字段名 COUNT(*)
在结果集中被替换为 total_customers
。
与 WHERE
一起使用 COUNT()
我们可以将 COUNT()
与 WHERE
一起使用,以计算具有特定列值 的行数:
SELECT COUNT(country) AS customers_in_UK
FROM Customers
WHERE country = 'UK';
这里,SQL 命令返回国家为 UK 的客户数。
与 DISTINCT
一起使用 COUNT()
如果我们需要计算唯一行的数量,我们可以使用带有 DISTINCT 子句的 COUNT()
函数。例如,
SELECT COUNT(DISTINCT country)
FROM Customers;
这里,SQL 命令返回不同国家的数量。
与 GROUP BY
一起使用 COUNT()
COUNT()
函数可以与 GROUP BY 子句一起使用,以计算具有相似值的行数。例如,
SELECT country, COUNT(*) AS customers
FROM Customers
GROUP BY country;
这里,SQL 命令返回每个国家中的客户数量。
与 HAVING
子句一起使用 COUNT()
我们可以将 COUNT()
与 [HAVING](/tutorials/sql/having)
子句一起使用,如下所示:
SELECT COUNT(customer_id), country
FROM Customers
GROUP BY country
HAVING COUNT(customer_id) > 1;
这里,SQL 命令:
- 按
country
分组计算行数 - 如果它们的计数大于1,则返回结果集。
COUNT()
与 NULL
值
SELECT COUNT(*)
返回结果集中的所有记录计数,不论NULL
值。SELECT COUNT(column_name)
返回指定列中包含非NULL
值的记录计数。