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 conditions:可选。它指定要选择的记录必须满足的条件。
DISTINCT:它允许我们返回表达式中不同值的最大值。但是,它不会影响 MAX() 函数,并且在不使用 this 关键字的情况下会产生相同的结果。
二、MySQL max()函数 示例
让我们借助各种示例了解 MAX 函数在MySQL中的工作原理。考虑我们的数据库有一个名为“ employees ”的表,其中包含以下数据。
1. 基本示例
执行以下查询,使用 MAX 函数查找表中可用员工的最大收入:
mysql> SELECT MAX(income) AS "Maximum Income" FROM employees;
上面的查询产生所有行中最大值的结果。执行后,我们会得到如下输出:
2. 带有 WHERE 子句的 MySQL MAX() 函数
WHERE 子句允许我们从选定的记录中过滤结果。以下语句在雇员表的所有行中查找最大收入。WHERE 子句指定所有emp_age 列大于 35 的行。
mysql> SELECT MAX(income) AS "Maximum_Income"
FROM employees
WHERE emp_age > 35;
上面的语句将得到如下输出:
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;
执行成功后,我们可以看到员工根据年龄分组返回的最大收入:
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);
子查询首先从表中找到员工的最大年龄。然后,主查询(外查询)返回age等于子查询返回的最大age等信息的结果。
热门文章
优秀文章