MAX
📄字数 712
👁️阅读量 加载中...
功能描述
计算指定列或表达式在数据集中的最大值。
语法格式
sql
MAX ([ DISTINCT | ALL ] expr1) [OVER ([analytic_clause])]
输入参数
expr1
:列名或表达式,用来指定输入数据。OVER ([analytic_clause])
:可选的分析子句,支持分组子句,排序子句以及范围子句,详情见analytic_clause。
输出结果
DOUBLE
或 NUMERIC
数值类型,任意参数为 NULL
时,输出参数为 NULL
。
示例
sql
-- 建表并插入数据
SQL> CREATE TABLE emp
(
empno INT PRIMARY KEY,
ename VARCHAR(10),
deptno INT,
sal DECIMAL(10,2),
hiredate DATE
);
SQL> INSERT INTO emp VALUES
(7369, 'SMITH', 20, 800, TO_DATE('17-12-1980', 'DD-MM-YYYY')),
(7499, 'ALLEN', 30, 1600, TO_DATE('20-2-1981', 'DD-MM-YYYY')),
(7521, 'WARD', 30, 1250, TO_DATE('22-2-1981', 'DD-MM-YYYY')),
(7566, 'JONES', 20, 2975, TO_DATE('2-4-1981', 'DD-MM-YYYY')),
(7654, 'MARTIN', 30, 1250, TO_DATE('28-9-1981', 'DD-MM-YYYY'));
-- 计算指定列或表达式在数据集中的最大值。
SQL> SELECT empno, ename, deptno, sal, MAX(sal) OVER (PARTITION BY deptno) FROM emp ORDER BY deptno, sal DESC;
+-------+--------+--------+------+-------+
| EMPNO | ENAME | DEPTNO | SAL | EXPR1 |
+-------+--------+--------+------+-------+
| 7566 | JONES | 20 | 2975 | 2975 |
| 7369 | SMITH | 20 | 800 | 2975 |
| 7499 | ALLEN | 30 | 1600 | 1600 |
| 7654 | MARTIN | 30 | 1250 | 1600 |
| 7521 | WARD | 30 | 1250 | 1600 |
+-------+--------+--------+------+-------+