SQL Server 函数

SQL Server (Transact-SQL) COUNT() 函数返回表达式的计数。

语法

使用 COUNT( 的语法) 函数如下:

SELECT COUNT(column_name) 
FROM table_name
WHERE condition(s); 

SQL Server (Transact-SQL) GROUP BY 子句用于在使用一列或多列时将结果表排列成相同的组。请注意,必须在 GROUP BY 子句中包含那些未封装在 COUNT() 函数中的列名。请参阅以下语法:

SELECT column1, column2, ...
       COUNT(column_name) 
FROM table_name
WHERE condition(s)
GROUP BY column1, column2, ...; 

参数

column1, column2, ...指定未封装在 COUNT() 函数中的列名。它必须包含在 GROUP BY 子句中。
column_name指定需要非空值的列或表达式
table_name指定需要检索记录的表名。
WHERE condition可选。 指定条件。根据指定的条件选择记录。

返回值

返回给定的非空值的计数表达式。

示例 - 单列

考虑一个名为 Employee 的数据库表,其中包含以下记录:

EmpIDNameCityAgeSalary
1JohnLondon253000
2MarryNew York242750
3JoParis272800
4KimAmsterdam303100
5RameshNew Delhi283000
6HuangBeijing282800

要获取年龄大于25岁的员工数量,可以使用以下查询:

SELECT COUNT(Name) AS EmployeeGT25 
FROM Employee
WHERE Age > 25; 

这将产生如下所示的结果:

EmployeeGT25
4

示例 - 使用 DISTINCT

DISTICT 子句可以与 COUNT() 函数一起使用。例如 - 要获取员工的不同(唯一)年龄的计数,可以使用以下代码:

SELECT COUNT(DISTINCT Age) AS DistinctAge 
FROM Employee; 

这将产生如下所示的结果:

DistinctAge
5

示例 - 使用 GROUP BY

要获取按年龄分组的员工数量,可以使用以下查询:

SELECT Age, COUNT(Age) AS NumberOfEmployee 
FROM Employee
GROUP BY Age; 

上述代码的结果将是:

AgeNumberOfEmployee
241
251
271
282
301