MySQL MAX() 函數用於返回表達式的一組值中的最大值。當我們需要查找最大數量、選擇最昂貴的產品或從您的表中向客戶支付最大數量時,此聚合函數非常有用。
用法
以下是 MySQL 中 MAX() 函數的基本語法:
SELECT MAX(DISTINCT aggregate_expression)
FROM table_name(s)
[WHERE conditions];
參數說明
該函數使用以下參數:
aggregate_expression:它是必需的表達式。它指定將從中返回最大值的列、表達式或公式。
table_name(s):它指定我們要從中檢索記錄的表。 FROM 子句中必須至少列出一個表。
WHERE 條件:可選。它指定要選擇的記錄必須滿足的條件。
DISTINCT:它允許我們返回表達式中不同值的最大值。但是,它不會影響 MAX() 函數,並且不使用此關鍵字也會產生相同的結果。
MySQL MAX() 函數示例
借助各種示例,讓我們了解 MAX 函數在 MySQL 中的工作原理。考慮我們的數據庫有一個名為 "employees" 的表,其中包含以下數據。
1. 基本示例
執行以下查詢,使用 MAX 函數查找表中可用員工的最大收入:
mysql> SELECT MAX(income) AS "Maximum Income" FROM employees;
輸出
上麵的查詢在所有行中產生最大值的結果。執行後,我們將得到如下輸出:
2. 帶有 WHERE 子句的 MySQL MAX() 函數
WHERE 子句允許我們從所選記錄中過濾結果。以下語句從員工表的所有行中查找最大收入。 WHERE 子句指定 emp_age 列大於 35 的所有行。
mysql> SELECT MAX(income) AS "Maximum_Income"
FROM employees
WHERE emp_age > 35;
輸出
上麵的語句將得到如下輸出:
3. MySQL MAX() 函數與 GROUP BY 子句
GROUP BY 子句允許我們從多行收集數據並基於一列或多列對其進行分組。例如,以下語句使用帶有 GROUP BY 子句的 MAX() 函數來查找每個 emp_age 組的員工表所有行中的最大收入。
mysql> SELECT emp_age, MAX(income) AS "Maximum Income"
FROM employees
GROUP BY emp_age;
輸出
執行成功後,我們可以看到員工的最高收入按照年齡分組返回:
3. 帶有 HAVING 子句的 MySQL MAX() 函數
HAVING 子句總是與 GROUP BY 子句一起使用來過濾表中的記錄。例如,以下語句返回所有員工中的最大收入,根據他們的城市對他們進行分組,並返回 MAX(income) >= 200000 的結果。
mysql> SELECT city, MAX(income) AS "Maximum Income"
FROM employees
GROUP BY city
HAVING MAX(income) >= 200000;
輸出
該語句將返回如下輸出:
5. 帶有 DISTINCT 子句的 MySQL MAX() 函數
MySQL 使用 DISTINCT 關鍵字從列名中刪除重複的行。我們還可以將此子句與 MAX() 函數一起使用,以返回表中存在的唯一記錄數的最大收入值。
執行以下查詢,刪除員工表的收入列中的重複記錄,按城市分組,然後返回最大值:
mysql> SELECT city, MAX(DISTINCT income) AS "Maximum Income"
FROM employees
GROUP BY city;
輸出
該語句將給出如下輸出:
6. 子查詢示例中的 MySQL MAX() 函數
有時需要使用子查詢返回表中的最大值。在這種情況下,我們使用以下查詢:
mysql> SELECT * FROM employees WHERE
emp_age = (SELECT MAX(emp_age) FROM employees);
子查詢首先從表中查找員工的最大年齡。然後,主查詢(外查詢)返回年齡等於子查詢返回的最大年齡等信息的結果。
輸出
相關用法
- MySQL MAKE_SET()用法及代碼示例
- MySQL MAKEDATE()用法及代碼示例
- MySQL MAKETIME()用法及代碼示例
- MySQL MONTHNAME()用法及代碼示例
- MySQL MONTH()用法及代碼示例
- MySQL MIN()用法及代碼示例
- MySQL MINUTE()用法及代碼示例
- MySQL MD5用法及代碼示例
- MySQL MID()用法及代碼示例
- MySQL MOD()用法及代碼示例
- MySQL MICROSECOND()用法及代碼示例
- MySQL ROUND()用法及代碼示例
- MySQL REPEAT()用法及代碼示例
- MySQL POWER()用法及代碼示例
- MySQL LEAD() and LAG()用法及代碼示例
- MySQL IS_IPV4()用法及代碼示例
- MySQL WEEK()用法及代碼示例
- MySQL CHARACTER_LENGTH()用法及代碼示例
- MySQL CURTIME()用法及代碼示例
- MySQL weekofyear()用法及代碼示例
注:本文由純淨天空篩選整理自 MySQL MAX() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。