SQL Server 聚合函数

17 Mar 2025 | 6 分钟阅读

SQL Server 中的聚合函数用于对一个或多个值执行计算并返回单个结果值。在 SQL Server 中,所有聚合函数都是内置函数,除了 COUNT(*) 外,它们都忽略 NULL 值。我们主要在数据库查询语言中将这些函数与 SELECT 语句的 GROUP BY 和 HAVING 子句一起使用。

DBA 通常使用这些函数来汇总他们的数据。当聚合函数在给定特定输入值集的情况下多次调用时,它们总是返回相同的值。因此,它们也被称为确定性函数。需要注意的是,聚合函数不能嵌套,并且表达式不能是子查询。

语法

以下是 MySQL 中使用聚合函数的语法

在此语法中,我们可以看到以下参数

aggregate_function_name: 它表示我们想要使用的聚合函数的名称。

DISTINCT | ALL: 当我们想在计算中考虑不同的值时,使用 DISTINCT 修饰符。当我们想计算所有值(包括重复值)时,使用 ALL 修饰符。如果我们未指定任何修饰符,则所有聚合函数默认使用 ALL 修饰符。

exp: 它表示表的列或包含多个列和算术运算符的表达式。

SQL Server 提供了各种聚合函数,最常用的聚合函数如下表所示

聚合函数描述
COUNT()此函数计算给定集合中的元素或行数,包括 NULL 值。
SUM()此函数计算给定集合中所有非 NULL 值的总和。
AVG()此函数对非 NULL 值执行计算,以获取给定集合的平均值。
MIN()此函数返回集合中的最小(最低)值。
MAX()此函数返回集合中的最大(最高)值。

此表显示了 SQL Server 中使用的其他聚合函数

聚合函数描述
CHECKSUM_AGG它计算给定集合中值的校验和。
COUNT_BIG()它计算给定集合中的元素数量,包括 NULL 值。此函数与 COUNT() 函数相同,但它返回 BIG INT 数据类型,而 COUNT 返回 INT 数据类型。
STDEV()它根据样本数据总体计算给定表达式中每个值的统计标准差。
STDEVP()它根据整个数据总体计算给定表达式中每个值的标准差。
VAR()它根据样本数据总体计算给定表达式中每个元素的统计方差。
VARP()它根据整个数据总体计算给定表达式中每个元素的统计方差。
GROUPING()它表示 GROUP BY 列表中的指定列表达式是否已聚合。如果结果集显示 1,则表示结果集已聚合;如果不是,则返回 0。
GROUPING_ID()它用于计算分组级别。

为什么我们使用聚合函数?

聚合函数主要用于在经济和金融领域生成汇总数据,以表示经济健康状况或股票和行业表现。在商业背景下,不同的组织级别需要不同的信息,例如高层管理者对整体数据感兴趣,而不是单个细节。

聚合函数示例

让我们了解最常用的聚合函数如何在数据库上工作。在这里,我们首先为所有聚合函数的演示创建一个员工表

执行以下语句以创建员工表

接下来,我们将向此表插入一些数据,如下所示

我们可以使用 SELECT 语句查看表记录

SQL Server Aggregate Functions

COUNT() 函数

此函数返回给定表达式中包含 NULL 值的总行数。它还可以根据指定条件计算所有记录,如果未找到任何匹配记录,则返回。它适用于数字非数字数据类型。

示例

以下示例使用 COUNT() 函数并返回存储在员工表中的员工数据的总数

输出

SQL Server Aggregate Functions

要阅读更多信息,请点击此处

SUM() 函数

此函数计算给定集合中非 NULL 值的总和。如果结果集中没有记录,则返回 NULL。SUM 函数只能与数字数据类型一起使用。

示例

以下示例使用 SUM 函数并计算存储在员工表中的所有员工的总薪水

输出

执行后,我们可以看到表中所有员工的总薪水

SQL Server Aggregate Functions

要阅读更多信息,请点击此处

AVG() 函数

此函数计算指定列中非 NULL 值的平均值。AVG 函数只能与数字数据类型一起使用。

示例

以下示例使用 AVG 函数并计算存储在员工表中的员工的平均薪水

输出

执行后,我们可以看到表中员工的平均薪水

SQL Server Aggregate Functions

要阅读更多信息,请点击此处

MIN() 函数

此函数返回指定列的最小(最低)值。它也只适用于数字数据类型。

示例

以下示例使用 MIN 函数并返回存储在员工表中的员工的最低薪水

输出

在这里,我们可以看到表中员工的最低薪水

SQL Server Aggregate Functions

要阅读更多信息,请点击此处

MAX() 函数

此函数返回指定列的最大(最高)值。它也只适用于数字数据类型。

示例

以下示例使用 MAX 函数并返回存储在员工表中的员工的最高薪水

输出

在这里,我们可以看到表中员工的最低薪水

SQL Server Aggregate Functions

要阅读更多信息,请点击此处

聚合函数和 JOIN

SQL Server 使我们能够使用聚合函数从多个表中检索结果数据。为了理解这个概念,我们将创建另一个名为“emp_address”的表,它存储每个员工的地址。这是创建表的查询

我们可以如下验证该表

SQL Server Aggregate Functions

假设我们想从两个不同的表中计算员工及其地址的总数。我们可以通过使用以下语句来完成此操作

我们将得到以下结果输出

SQL Server Aggregate Functions

在本文中,我们学习了 SQL Server 中流行的聚合函数以及如何使用它们来计算聚合。