SQL MAX 函数

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

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
  first_name,
  last_name,
  salary
FROM
  employees
WHERE
  salary = (
    SELECT
      MAX(salary)
    FROM
      employees
  );Code language: SQL (Structured Query Language) (sql)

试一试

输出

 first_name | last_name |  salary
------------+-----------+----------
 Steven     | King      | 24000.00

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

SQL MAX 与 GROUP BY 示例 #

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

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

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

试一试

输出

 department_id | max_salary
---------------+------------
             1 |    4400.00
             4 |    6500.00
             5 |    8200.00
             6 |    9000.00
             7 |   10000.00
             3 |   11000.00
            11 |   12000.00
            10 |   12000.00
             2 |   13000.00
             8 |   14000.00
             9 |   24000.00

要在结果中包含部门名称,我们将 employees 表与 departments 表连接起来,如下所示

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

试一试

 department_name  | max_salary
------------------+------------
 Administration   |    4400.00
 Human Resources  |    6500.00
 Shipping         |    8200.00
 IT               |    9000.00
 Public Relations |   10000.00
 Purchasing       |   11000.00
 Accounting       |   12000.00
 Finance          |   12000.00
 Marketing        |   13000.00
 Sales            |   14000.00
 Executive        |   24000.00Code language: PHP (php)

SQL MAX 与 HAVING 示例 #

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

例如,要获取某个部门,其中有员工的最高薪水大于 12000,您可以在 HAVING 子句中使用 MAX 函数,如下所示

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

试一试

输出

 department_name | max_salary
-----------------+------------
 Marketing       |   13000.00
 Sales           |   14000.00
 Executive       |   24000.00

摘要 #

  • 使用 MAX 函数查找一组值中的最大值。
  • MAX 函数与 GROUP BY 子句一起使用,以查找每个组的最大值。

数据库 #

本教程是否有帮助?
© .