MAX() 和 MIN() 是 Oracle 常用的聚合函数,用于从一组值中找出最大值和最小值
1.MAX()函数
MAX()函数返回指定列或表达式中的最大值
语法格式
MAX(expression)
参数说明
expression:可以是列名、计算列或表达式
示例
-- 返回employees表中salary列的最大值
SELECT MAX(salary) FROM employees;-- 与GROUP BY结合使用
-- 返回每个部门的最高薪资
SELECT department_id, MAX(salary)
FROM employees
GROUP BY department_id;-- 返回最近的雇佣日期
SELECT MAX(hire_date) FROM employees;-- 返回两列最大值中的较大者
SELECT GREATEST(MAX(col1), MAX(col2)) FROM table1;-- 结合CASE表达式使用
SELECT MAX(CASE WHEN department_id = 10 THEN salary END) as dept10_max_salary
FROM employees;-- 在HAVING子句中使用
SELECT department_id, MAX(salary)
FROM employees
GROUP BY department_id
HAVING MAX(salary) > 10000;
提示Tips
① MAX()函数适用于数值、日期和字符数据类型
② MAX()函数忽略NULL值
③ MAX()函数常与GROUP BY子句一起使用
与GROUP BY一起使用时,SELECT列表中的非聚合列必须包含在GROUP BY子句中
2.MIN()函数
MIN()函数返回指定列或表达式中的最小值
语法格式
MIN(expression)
参数说明
expression:可以是列名、计算列或表达式
示例
-- 返回employees表中salary列的最小值
SELECT MIN(salary) FROM employees;-- 与GROUP BY结合使用
-- 返回每个部门最早的雇佣日期
SELECT department_id, MIN(hire_date)
FROM employees
GROUP BY department_id;
提示Tips
① MIN()函数适用于数值、日期和字符数据类型
② MIN()函数忽略NULL值
③ MIN()函数常与GROUP BY子句一起使用
与GROUP BY一起使用时,SELECT列表中的非聚合列必须包含在GROUP BY子句中