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子句中