SQL MAX

摘要:在本教程中,你将学习如何使用 SQL SUM 函数查找组中的最大值。

SQL MAX 函数介绍

SQL 提供了 MAX 函数,允许你查找一组值中的最大值。下面说明了 MAX 函数的语法。

MAX(expression)Code language: SQL (Structured Query Language) (sql)

MAX 函数会忽略 NULL 值。

SUMCOUNTAVG 函数不同,DISTINCT 选项不适用于 MAX 函数。

SQL MAX 函数示例

我们将使用 employees 表演示 MAX 函数如何工作。

employees_table

下面的 SELECT 语句返回 employees 表中员工的最高(最大)工资。

SELECT 
    MAX(salary)
FROM
    employees;Code language: SQL (Structured Query Language) (sql)

试用

若要获取拥有最高工资的员工,请使用子查询,如下所示

SELECT
	employee_id,
	first_name,
	last_name,
	salary
FROM
	employees
WHERE
	salary = (
		SELECT
			MAX(salary)
		FROM
			employees
	);Code language: SQL (Structured Query Language) (sql)

试用

SQL MAX highest salary

子查询返回最高工资。外部查询获取工资等于最高工资的员工。

包含 GROUP BY 的 SQL MAX 示例

我们通常将 MAX 函数与 GROUP BY 子句结合使用,以查找每个组的最大值。

例如,我们可以使用 MAX 函数查找每个部门中员工的最高工资,如下所示

SELECT
	department_id,
	MAX(salary)
FROM
	employees
GROUP BY
	department_id;Code language: SQL (Structured Query Language) (sql)

试用

SQL MAX highest salary per department

若要在结果中包含部门名称,我们按照下列方式将 employees 表与 departments 表联接

SELECT
	d.department_id,
	department_name,
	MAX(salary)
FROM
	employees e
INNER JOIN departments d ON d.department_id = e.department_id
GROUP BY
	e.department_id;Code language: SQL (Structured Query Language) (sql)

试用

SQL MAX highest salary by department example

包含 ORDER BY 的 SQL MAX 示例

与其他聚合函数一样,若要根据 MAX 函数的结果对结果集进行排序,我们必须将 MAX 函数放在 ORDER BY 子句中。

例如,以下语句返回每个部门中员工的最高工资,并根据最高工资对结果集进行排序。

SELECT
	d.department_id,
	department_name,
	MAX(salary)
FROM
	employees e
INNER JOIN departments d ON d.department_id = e.department_id
GROUP BY
	e.department_id
ORDER BY
	MAX(salary) DESC;Code language: SQL (Structured Query Language) (sql)

试用

SQL MAX with ORDER BY example

包含 HAVING 的 SQL MAX 示例

我们在 HAVING 子句中使用 MAX 函数,以将条件添加到由 GROUP BY 子句总结的组中。

例如,若要获取最高工资高于 12000 的员工所在的部门,请在 HAVING 子句中使用 MAX 函数,如下所示

SELECT
	d.department_id,
	department_name,
	MAX(salary)
FROM
	employees e
INNER JOIN departments d ON d.department_id = e.department_id
GROUP BY
	e.department_id
HAVING
	MAX(salary) > 12000;Code language: SQL (Structured Query Language) (sql)

试用

SQL MAX with HAVING clause example

在本教程中,我们向你展示了如何使用 MAX 函数查找一组值中的最大值。

本教程是否有用?