MAX() 聚合函數用於返回指定表達式的最大值,支援數值、字符串、日期等可比較類型。本文展示基本用法、分組最大值及與 MIN() 結合。
employee_tbl 表,關注 daily_typing_pages 欄位。
mysql> SELECT MAX(daily_typing_pages) FROM employee_tbl; +-------------------------+ | MAX(daily_typing_pages) | +-------------------------+ | 350 | +-------------------------+
mysql> SELECT id, name, work_date, MAX(daily_typing_pages) -> FROM employee_tbl GROUP BY name; +------+------+------------+-------------------------+ | id | name | work_date | MAX(daily_typing_pages) | +------+------+------------+-------------------------+ | 3 | Jack | 2007-05-06 | 170 | | 4 | Jill | 2007-04-06 | 220 | | 1 | John | 2007-01-24 | 250 | | 2 | Ram | 2007-05-27 | 220 | | 5 | Zara | 2007-06-06 | 350 | +------+------+------------+-------------------------+
注意:非聚合欄位 id、work_date 的值是不確定的(MySQL 允許但不推薦),生產環境應僅選擇分組欄位與聚合欄位,或使用窗口函數(MySQL 8.0+)獲取對應行完整信息。
mysql> SELECT
MIN(daily_typing_pages) AS least,
MAX(daily_typing_pages) AS max
FROM employee_tbl;
+-------+------+
| least | max |
+-------+------+
| 100 | 350 |
+-------+------+
MAX(name) 返回字典序最大的名字。MAX(work_date) 返回最晚日期。MAX() 忽略 NULL 值;若所有值均為 NULL,結果為 NULL。