程序员社区

MySQL系列教程 --- 89、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 ”的表,其中包含以下数据。

file

1. 基本示例

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

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

输出

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

file

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

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

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

输出

上面的语句将得到如下输出:

file

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

在GROUP BY子句允许我们给它基于一个或多个列多行和组收集数据。例如,以下语句使用带有 GROUP BY 子句的 MAX() 函数来查找每个 emp_age 组的员工表所有行中的最大收入。

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

输出

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

file

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

在HAVING子句总是与GROUP BY子句中使用从表中筛选记录。例如,以下语句返回所有员工中的最大收入,根据他们的城市对他们进行分组,并返回 MAX(income) >= 200000 的结果。

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

输出

该语句将返回如下输出:

file

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

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

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

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

输出

该语句将给出如下输出:

file

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

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

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

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

输出

file

赞(0) 打赏
未经允许不得转载:IDEA激活码 » MySQL系列教程 --- 89、MySQL 中的 max() 函数

一个分享Java & Python知识的社区