MySQL MAX() 函数

2025年3月17日 | 阅读 3 分钟

MySQL MAX() 函数用于返回表达式值集合中的最大值。此聚合函数在我们需要查找最大数字、选择最昂贵的产品或从表中获取客户的最大付款时非常有用。

语法

以下是 MySQL 中 MAX() 函数的基本语法

参数解释

此函数使用以下参数

aggregate_expression: 这是必需的表达式。它指定将从中返回最大值的列、表达式或公式。

table_name(s): 它指定要从中检索记录的表。FROM 子句中必须至少列出一个表。

WHERE conditions: 这是可选的。它指定必须满足的条件才能选择记录。

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

MySQL MAX() 函数示例

让我们通过各种示例来理解 MAX 函数如何在 MySQL 中工作。考虑我们的数据库有一个名为“employees”的表,其中包含以下数据。

mysql max() function

1. 基本示例

执行以下查询,该查询使用 MAX 函数查找表中员工的最高收入

输出

上面的查询生成所有行的最大值结果。执行后,我们将得到如下输出

mysql max() function

2. 带有 WHERE 子句的 MySQL MAX() 函数

WHERE 子句允许我们过滤选定记录的结果。以下语句查找员工表中所有行的最大收入。WHERE 子句指定所有 emp_age 列大于 35 的行。

输出

上述语句将得到如下输出

mysql max() function

3. 带有 GROUP BY 子句的 MySQL MAX() 函数

GROUP BY 子句允许我们从多行收集数据,并根据一个或多个列对其进行分组。例如,以下语句使用 MAX() 函数和 GROUP BY 子句来查找员工表中每个 emp_age 组的所有行的最大收入。

输出

成功执行后,我们可以看到员工的最大收入是根据他们的年龄分组返回的

mysql max() function

3. 带有 HAVING 子句的 MySQL MAX() 函数

HAVING 子句始终与 GROUP BY 子句一起使用,以过滤表中的记录。例如,以下语句返回按城市分组的所有员工中的最大收入,并返回 MAX(income) >= 200000 的结果。

输出

此语句将返回如下输出

mysql max() function

5. 带有 DISTINCT 子句的 MySQL MAX() 函数

MySQL 使用 DISTINCT 关键字删除列名中的重复行。我们也可以将此子句与 MAX() 函数一起使用,以返回表中唯一记录数的最大收入值。

执行以下查询,该查询删除员工表中 income 列的重复记录,按 city 分组,然后返回最大值

输出

此语句将给出以下输出

mysql max() function

6. 子查询中的 MySQL MAX() 函数示例

有时需要使用子查询来返回表中的最大值。在这种情况下,我们使用以下查询

子查询首先查找表中的最大员工年龄。然后,主查询(外部查询)返回年龄等于子查询返回的最大年龄和其他信息的结果。

输出

mysql max() function