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 子句一起使用,以查詢每個組的最大值。

資料庫 #

本教程是否有幫助?
© .