在MySQL中,MAX() 和 MIN() 是聚合函数,用于从一列数据中找出最大值和最小值。它们常用于数值、日期或字符串类型的字段,通常与 SELECT 语句结合使用。
基本语法
SELECT MAX(列名) FROM 表名;
SELECT MIN(列名) FROM 表名;
这两个函数会忽略 NULL 值,只对非空值进行计算。
查询单列的最大值和最小值
假设有一个名为 products 的表,结构如下:
+----+----------+-------+ | id | name | price | +----+----------+-------+ | 1 | Laptop | 5000 | | 2 | Mouse | 50 | | 3 | Keyboard | 150 | +----+----------+-------+
要找出价格最高的产品价格:
SELECT MAX(price) AS max_price FROM products;返回结果:5000
要找出价格最低的产品价格:
SELECT MIN(price) AS min_price FROM products;返回结果:50
结合 WHERE 条件使用
可以配合 WHERE 子句筛选特定条件下的最大或最小值。
例如:查找价格大于 100 的产品中的最高价:
SELECT MAX(price) FROM products WHERE price > 100;结果将返回 5000。
与 GROUP BY 配合分组统计
当需要按某字段分组并查看每组的最大或最小值时,使用 GROUP BY。
比如表中有 category 字段:
+----+----------+-------+-----------+ | id | name | price | category | +----+----------+-------+-----------+ | 1 | Laptop | 5000 | Electronics | | 2 | Mouse | 50 | Electronics | | 3 | Apple | 8 | Food | | 4 | Banana | 5 | Food | +----+----------+-------+-----------+
按类别查看最高价格:
SELECT category, MAX(price) AS max_price FROM products GROUP BY category;结果:
+-------------+-----------+ | category | max_price | +-------------+-----------+ | Electronics | 5000 | | Food | 8 | +-------------+-----------+
同理可查每类的最低价格:
SELECT category, MIN(price) AS min_price FROM products GROUP BY category;支持的数据类型
MAX 和 MIN 不仅适用于数字,还可用于:
日期类型:找出最早或最晚的日期 字符串类型:按字母顺序返回最大或最小的值(如 A 最小,Z 最大)例如,查找员工表中最早入职的日期:
SELECT MIN(hire_date) FROM employees;查找姓名字典序最大的员工:
SELECT MAX(name) FROM employees;基本上就这些。用好 MAX 和 MIN 能快速获取关键极值信息,尤其在数据分析中非常实用。注意确保字段类型适合比较,避免意外结果。
