SQL Server MAX() 函数

17 Mar 2025 | 4 分钟阅读

SQL Server 中的 MAX() 函数是一种聚合函数。它用于获取指定列或表达式的 最大值或最大值。它是 SQL Server 中最常用的内置函数。此函数接受一个参数,该参数可以是列或有效表达式,并返回一个结果以汇总输入数据集。它还可以与 WHERE、GROUP BY、ORDER BY 和 HAVING 子句一起使用以获取过滤后的结果。

语法

以下语法解释了 SQL Server 中的 MAX() 函数

以下解释了函数参数

aggregate_expression: 它是必需的表达式,表示从中返回最大值的列名。

table_name(s): 它指示我们要从中检索列的表的名称。 可以指定多个表。

WHERE 条件: 这是一个可选子句,用于定义条件以过滤列或表达式。

DISTINCT: 它返回表达式中唯一值的最大值。但是,它不影响 MAX() 函数,并且在不使用此关键字的情况下产生相同的结果。

注意:MAX() 函数忽略 NULL 值。当未找到任何行时,它返回 NULL。

MAX() 函数示例

让我们借助各种示例来了解 SQL Server 中 MAX 函数的用法。假设我们的数据库有一个名为“ProductQty”的表,其中包含以下数据

SQL server max function

示例 1: 此示例使用 MAX() 函数获取 ProductQty 表中已售产品的最大数量

此语句显示以下输出,其中我们看到已售产品的最大数量

SQL server max function

示例 2: 此示例将 WHERE 子句与 MAX() 函数一起使用。此子句用于从表中过滤记录。当我们想获取销量最高的产品的名称时,它很有用。请参阅以下语句

在这里,SQL Server 首先评估使用 MAX() 函数的子查询,然后外部查询显示数量等于子查询结果的产品名称。当我们执行该语句时,我们将看到所需的输出

SQL server max function

示例 3: 此示例将 GROUP BY 子句与 MAX() 函数一起使用。GROUP BY 子句从多行收集数据,并根据指定的列对它们进行分组。例如,我们可以使用以下语句获取 ProductQty 表中每个产品组所有行的最大数量。

执行该语句将显示每个产品的最大数量

SQL server max function

示例 4: 此示例将 HAVING 子句与 MAX() 函数一起使用。我们始终将 HAVING 子句与 GROUP BY 子句一起使用以过滤分组记录。例如,如果我们想获取已售产品名称的最大数量大于 300,可以使用以下语句

执行该语句将返回以下输出

SQL server max function

示例 5: 此示例将 MAX() 函数与两列一起使用以获取最高结果输出

当我们执行该语句时,它将从 ProductQty 表中为每个产品返回 (数量 * 价格) 的最高值

SQL server max function

示例 6: 此示例将 DISTINCT 和 OVER() 子句与 MAX() 函数一起使用。我们使用 DISTINCT 子句来获取唯一数据,而 OVER 子句确定将哪些查询行应用于该函数、函数评估它们的顺序以及何时应重新启动函数的计算。

此语句返回以下输出

SQL server max function

示例 7: 此示例将 MAX() 函数与字符数据一起使用。假设我们考虑了系统数据库,并想获取按字母顺序对最后一个名称进行排序的数据库名称。我们可以编写如下语句

这是结果:

SQL server max function

结论

本文将解释 SQL Server 中 MAX() 函数的完整概述。在这里,我们学习了如何借助 WHERE、GROUP BY、HAVING 和 OVER 子句从表中获取最高值。


下一个主题SQL Server SUM 函数