Oracle Aggregate Function - Oracle/PLSQL LAST Function






LAST gets the last values in an ordered group. LAST can work with: MIN(), MAX(), COUNT(), SUM(), AVG(), STDDEV(), and VARIANCE().

Example

LAST gets the department with lowest salary.


CREATE TABLE EMP (EMPNO NUMBER(4) NOT NULL,
                  ENAME VARCHAR2(10),
                  JOB VARCHAR2(9),
                  SAL NUMBER(7, 2),
                  DEPTNO NUMBER(2));
-- from   w w  w .j  a  v  a 2  s.  c  o  m
INSERT INTO EMP VALUES (1, 'SMITH', 'CLERK',     800,    20);
INSERT INTO EMP VALUES (2, 'ALLEN', 'SALESMAN', 1600,    30);
INSERT INTO EMP VALUES (3, 'WARD',  'SALESMAN', 1250,    30);
INSERT INTO EMP VALUES (4, 'JONES', 'MANAGER',  2975,    20);
INSERT INTO EMP VALUES (5, 'MARTIN','SALESMAN', 1250,    30);
INSERT INTO EMP VALUES (6, 'BLAKE', 'MANAGER',  2850,    30);
INSERT INTO EMP VALUES (7, 'CLARK', 'MANAGER',  2850,    10);
INSERT INTO EMP VALUES (8, 'SCOTT', 'ANALYST',  3000,    20);
INSERT INTO EMP VALUES (9, 'KING',  'PRESIDENT',3000,    10);
INSERT INTO EMP VALUES (10,'TURNER','SALESMAN', 1500,    30);
INSERT INTO EMP VALUES (11,'ADAMS', 'CLERK',    1500,    20);

SQL> SELECT
  2  MIN(deptno) KEEP (DENSE_RANK LAST ORDER BY SUM(sal)) AS lowest_salary_dept
  3  FROM emp
  4  GROUP BY deptno
  5  ORDER BY deptno;

LOWEST_SALARY_DEPT
------------------
                30

SQL>