SQL COUNT() 函数
SQL COUNT() 函数
COUNT() 函数返回匹配指定条件的行数。
COUNT() 语法
SELECT COUNT([DISTINCT] column_name | *) FROM table_name WHERE condition;
COUNT() 的行为取决于括号内使用的参数:
COUNT(*)- 计算表中的总行数(包括 NULL 值)。COUNT(column_name)- 计算列中所有非 NULL 值的数量。COUNT(DISTINCT column_name)- 仅计算列中唯一的、非 NULL 值的数量。
使用 COUNT(*)
以下 SQL 使用 COUNT(*) 计算 Products 表中的总行数(包括 NULL 值):
实例
SELECT COUNT(*) FROM Products;
演示数据库
以下是在实例中使用的 Products 表的片段:
| ProductID | ProductName | SupplierID | CategoryID | Unit | Price |
|---|---|---|---|---|---|
| 1 | Chais | 1 | 1 | 10 boxes x 20 bags | 18.00 |
| 2 | Chang | 1 | 1 | 24 - 12 oz bottles | 19.00 |
| 3 | Aniseed Syrup | 1 | 2 | 12 - 550 ml bottles | 10.00 |
| 4 | Chef Anton's Cajun Seasoning | 2 | 2 | 48 - 6 oz jars | 22.00 |
| 5 | Chef Anton's Gumbo Mix | 2 | 2 | 36 boxes | 21.35 |
使用 COUNT(column_name)
COUNT(column_name) 计算指定列中所有非 NULL 值的数量。
以下 SQL 计算 ProductName 列中所有非 NULL 值的数量:
实例
SELECT COUNT(ProductName) FROM Products;
使用 COUNT(DISTINCT column_name)
您可以通过使用 DISTINCT 关键字来忽略重复项。
COUNT(DISTINCT column_name) 仅计算列中唯一的、非 NULL 值的数量。
如果指定了 DISTINCT,则指定列中具有相同值的行将被计为一行。
以下 SQL 计算 Price 列中唯一的、非 NULL 值的数量:
实例
Products 表中有多少种不同的价格:
SELECT COUNT(DISTINCT Price) FROM Products;
添加 WHERE 子句
您可以添加 WHERE 子句来指定条件:
实例
计算 Price 高于 20 的产品数量:
SELECT COUNT(ProductID) FROM Products WHERE Price > 20;
使用别名
使用 COUNT() 时,返回的列将没有名称。使用 AS 关键字为列指定描述性的名称。
实例
将 "count" 列命名为 "Number of records":
SELECT COUNT(*) AS [Number of records] FROM Products;
将 COUNT() 与 GROUP BY 一起使用
这里我们使用 COUNT() 函数和 GROUP BY 子句,返回 Products 表中每个类别的记录数:
实例
SELECT COUNT(*) AS [Number of records], CategoryID FROM Products GROUP BY CategoryID;
您将在本教程的后面部分学习更多关于 GROUP BY 子句的内容。