MySQL MAX函数

MySQL MAX函数

MySQL MAX函数用于返回表达式中一组值中的最大值。当我们需要找到最大的数字、选择最贵的产品或从表格中获取最大的付款给客户时,这个聚合函数非常有用。

语法

MySQL中MAX()函数的基本语法如下:

SELECT MAX(DISTINCT aggregate_expression)  
FROM table_name(s)  
[WHERE conditions];

参数解释

此函数使用以下参数:

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

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

WHERE条件: 它是可选的。它指定必须满足的条件以选择记录。

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

MySQL MAX函数示例

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

MySQL MAX函数

1. 基本示例

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

mysql> SELECT MAX(income) AS "Maximum Income" FROM employees;

输出

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

MySQL MAX函数

2. 使用 WHERE 子句的 MySQL MAX() 函数

WHERE 子句 允许我们筛选从选择的记录中得出的结果。下面的语句在员工表中找到所有行中的最高收入。WHERE 子句指定了所有 emp_age 列 大于 35 的行。

mysql> SELECT MAX(income) AS "Maximum_Income" 
FROM employees 
WHERE emp_age > 35;

输出

上述语句将会得到以下输出:

MySQL MAX函数

3. MySQL MAX函数和GROUP BY子句

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

mysql> SELECT emp_age, MAX(income) AS "Maximum Income" 
FROM employees 
GROUP BY emp_age;

输出

在成功执行后,我们可以看到根据年龄进行分组后,员工的最高收入返回:

MySQL MAX函数

3. 使用HAVING子句的MySQL MAX函数

通常与GROUP BY子句一起使用HAVING子句来过滤表中的记录。例如,下面的语句根据员工所在的城市对其进行分组,并返回最大收入大于等于200000的结果。

mysql> SELECT city, MAX(income) AS "Maximum Income" 
FROM employees 
GROUP BY city
HAVING MAX(income) >= 200000;

输出

这个语句将会返回以下输出:

MySQL MAX函数

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

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

执行以下查询,删除employee表中收入列中的重复记录,按城市分组,然后返回最大值:

mysql> SELECT city, MAX(DISTINCT income) AS "Maximum Income" 
FROM employees 
GROUP BY city;

输出

此语句将输出如下:

MySQL MAX函数

6. MySQL MAX()子查询示例中的功能

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

mysql> SELECT * FROM employees WHERE 
emp_age = (SELECT MAX(emp_age) FROM employees);

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

输出

MySQL MAX函数

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程