MAX
MAX() 找最大值——工资最高的是谁、最贵的商品多少钱、最近的入职是哪年。MAX(列名) 忽略 NULL 值,行为与 MIN 对称。和 ORDER BY ... DESC LIMIT 1 相比,MAX 更直接,优化器可以走索引极快返回。
MAX 常和 GROUP BY 搭配:每个部门的最高工资、每家店铺最贵商品。也常配合子查询使用——比如"查工资最高的员工是谁"就需要两步:先子查询 SELECT MAX(basic_salary) 得到最高工资,再外层查 WHERE basic_salary = 那个值。MAX 只能拿到最大值本身,要拿到最大值所在行的其他信息,必须用子查询或 ORDER BY ... LIMIT 1。
以飞翔科技为例:
-- 全公司最高基本工资
SELECT MAX(basic_salary) AS 最高工资 FROM employees;
-- 技术部最高绩效奖金
SELECT MAX(performance_bonus) AS 最高奖金
FROM employees
WHERE dept_code = 2;
-- 飞翔小店最贵商品
SELECT MAX(price) AS 最高价
FROM products
WHERE shop_name = '飞翔小店';
-- 查工资最高的那个人(子查询组合)
SELECT emp_name, basic_salary
FROM employees
WHERE basic_salary = (SELECT MAX(basic_salary) FROM employees);