Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

LAST_VALUE

Rosario VigilanteOct 25 2007 — edited Oct 25 2007
Hello and thanks in advance

Why I don't get LAST_VALUE(sal) on emp's table query?
SELECT deptno, ename, sal,
   SUM(SAL) OVER (PARTITION BY deptno
      ) AS SUM_SAL_HAS ,
   MIN(SAL) OVER (PARTITION BY deptno
      ) AS MIN_SAL_HAS ,
   MAX(SAL) OVER (PARTITION BY deptno
      ) AS MAX_SAL_HAS ,
  FIRST_VALUE(sal)
  OVER (PARTITION BY deptno
        ORDER BY sal ) AS FIRST_SAL_HAS ,
  LAST_VALUE(sal)
  OVER (PARTITION BY deptno
        ORDER BY sal ) AS LAST_SAL_HAS
FROM emp
ORDER BY deptno, ename;

deptno	ename	sal                                             	LAST_SAL_HAS

10	CLARK	2450	8750	1300	5000	1300	2450
10	KING	5000	8750	1300	5000	1300	5000
10	MILLER	1300	8750	1300	5000	1300	1300
20	ADAMS	1100	10875	800	3000	800	1100
20	FORD	3000	10875	800	3000	800	3000
20	JONES	2975	10875	800	3000	800	2975
20	SCOTT	3000	10875	800	3000	800	3000
20	SMITH	800	10875	800	3000	800	800
30	ALLEN	1600	9400	950	2850	950	1600
30	BLAKE	2850	9400	950	2850	950	2850
30	JAMES	950	9400	950	2850	950	950
30	MARTIN	1250	9400	950	2850	950	1250
30	TURNER	1500	9400	950	2850	950	1500
30	WARD	1250	9400	950	2850	950	1250
That is, why 'LAST_VALUE(sal) OVER (PARTITION BY deptno ORDER BY sal )' column don't return 5000 for deptno(10),
3000 for deptno(20) and so on? What I missing?

Thanks
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Nov 22 2007
Added on Oct 25 2007
2 comments
293 views