MIN
MIN() 找最小值——一列里最小的那个数、最早的日期、字典序最靠前的字符串。MIN(列名) 忽略 NULL 值。如果整列都是 NULL,MIN 返回 NULL。MIN 不止用于数字:日期列返回最早日期,字符串列返回字典序最小的值。
和 ORDER BY ... ASC LIMIT 1 相比,MIN 更简洁,数据库优化器对它更友好——有索引时可以直接取索引的第一个值,几乎零成本。
以飞翔科技为例:
-- 全公司最低工资
SELECT MIN(basic_salary) AS 最低工资 FROM employees;
-- 技术部最低绩效奖金
SELECT MIN(performance_bonus) AS 最低奖金
FROM employees
WHERE dept_code = 2;
-- 飞翔小店最便宜的商品
SELECT MIN(price) AS 最低价
FROM products
WHERE shop_name = '飞翔小店';
-- 最早的入职年份
SELECT MIN(join_year) AS 最早入职 FROM employees;
最后一个例子对年份取 MIN,等价于"公司最早一批员工是哪年入职的"。MIN 在日期、年份、价格等所有可比较的字段上都能用——不限于数字。