MySQL MAX()函数
MySQL MAX()函数用于返回表达式的一组值中的最大值。当我们需要查找最大数量,选择最昂贵的产品或从您的表中获得最大的付款额时,此汇总功能很有用。
语法
以下是MySQL中MAX()函数的基本语法:
SELECT MAX(DISTINCT aggregate_expression)
FROM table_name(s)
[WHERE conditions];
参数说明
此函数使用以下参数:
aggregate_expression: 是必需的表达式。它指定将从中返回最大值的列,表达式或公式。
table_name: 它指定要从中检索记录的表。在FROM子句中必须至少列出一个表。
conditions: 这是可选的。它指定了选择记录所必须满足的条件。
DISTINCT: 它允许我们返回表达式中不同值的最大值。但是,它不影响MAX()函数,并且不使用此关键字也会产生相同的结果。
MySQL MAX()函数示例
让我们了解如何MAX函数借助各种示例在 MySQL 中工作。考虑我们的数据库有一个名为"
employees "的表,其中包含以下数据。
1、基本示例
执行以下使用MAX函数的查询,以找到表中可用的员工的
最高收入:
mysql> SELECT MAX(income) AS "Maximum Income" FROM employees;
输出
上面的查询在所有行中产生最大值的结果。执行后,我们将得到如下输出:
2、带有WHERE子句的MySQL MAX()函数
通过 WHERE子句,我们可以从选定的记录。以下语句在employee表中的所有行中查找最大收入。 WHERE子句指定
emp_age列大于35的所有行。
mysql> SELECT MAX(income) AS "Maximum_Income"
FROM employees
WHERE emp_age > 35;
输出
上面的语句将得到如下输出:
3、带有GROUP BY子句的MySQL MAX()函数
GROUP BY子句允许我们收集来自多行的数据,并根据一列或多列对其进行分组。例如,以下语句将MAX()函数与GROUP BY子句一起使用,以从employee表的所有行中找到每个emp_age组的最大收入。
mysql> SELECT emp_age, MAX(income) AS "Maximum Income"
FROM employees
GROUP BY emp_age;
输出
成功执行后,我们可以通过根据年龄对员工进行分组来查看该员工的最大收入:
4、带有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;
输出
此语句将返回如下输出:
5、带有DISTINCT子句的MySQL MAX()函数
MySQL使用 DISTINCT 关键字从中删除重复的行列名。我们还可以将此子句与MAX()函数一起使用,以返回表中存在的唯一记录数的最大收入值。
执行以下查询,以删除employee表的income列中的重复记录,按城市分组,然后返回最大值:
mysql> SELECT city, MAX(DISTINCT income) AS "Maximum Income"
FROM employees
GROUP BY city;
输出
此语句将给出如下输出:
6、子查询示例中的MySQL MAX()函数
有时,需要使用子查询来返回表中的最大值。在这种情况下,我们使用以下查询:
mysql> SELECT * FROM employees WHERE
emp_age = (SELECT MAX(emp_age) FROM employees);
子查询首先从表中找到雇员的最大年龄。然后,主查询(外部查询)返回的年龄等于从子查询返回的最大年龄以及其他信息。
输出