摘要:在本教程中,您將學習如何使用 SQL MAX 函式查詢組中的最大值。
SQL MAX 函式簡介 #
SQL 提供了 MAX 函式,允許您在一組值中找到最大值。
下面演示了 MAX 函式的語法
MAX(expression)Code language: SQL (Structured Query Language) (sql)MAX 函式會忽略 NULL 值。
與 SUM、COUNT 和 AVG 函式不同,DISTINCT 選項不適用於 MAX 函式。
SQL MAX 函式示例 #
我們將使用 employees 表來演示 MAX 函式的工作原理。

以下 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子句一起使用,以查詢每個組的最大值。
資料庫 #
本教程是否有幫助?