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 函數在數值群組中尋找最大值。

這個教學有幫助嗎?