Database 23

오라클 윈도우 절 (Oracle Windowing Clause)

스키마http://xprogrammer.tistory.com/333 쿼리 SELECT deptno, ename, hiredate, sal, SUM(sal) OVER ( PARTITION BY deptno -- 분석함수로 계산될 대상의 그룹을 지정 ORDER BY hiredate -- 파티션 안에서의 순서를 지정 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING -- 시작행과 끝행 ) AS first_end_salary, SUM(sal) OVER ( PARTITION BY deptno -- 분석함수로 계산될 대상의 그룹을 지정 ORDER BY hiredate -- 파티션 안에서의 순서를 지정 ROWS BETWEEN UNBOUNDED PRECEDING AN..

Database/Oracle 2018.03.27

오라클 LEAD() vs LAG()

스키마http://xprogrammer.tistory.com/333 쿼리 SELECT deptno, empno, sal , LAG (sal,2,0) OVER(ORDER BY deptno, empno) pre1 -- 현재행을 기준으로 이전 2번째 행, 값이 없으면 0 , LAG (sal,1,0) OVER(ORDER BY deptno, empno) pre2 -- 현재행을 기준으로 이전 1번째 행, 값이 없으면 0 , LEAD(sal,1,0) OVER(ORDER BY deptno, empno) nxt1 -- 현재행을 기준으로 다음 1번째 행, 값이 없으면 0 , LEAD(sal,2,0) OVER(ORDER BY deptno, empno) nxt2 -- 현재행을 기준으로 다음 2번째 행, 값이 없으면 0 FRO..

Database/Oracle 2018.03.27

오라클 RANK() vs DENSE_RANK() vs ROW_NUMBER()

스키마http://xprogrammer.tistory.com/333 쿼리 SELECT deptno, empno, ename, sal, RANK() OVER -- 순위를 부여한다.중복된 값이 있을 경우 다음 순서로 ( PARTITION BY deptno -- 분석함수로 계산될 대상의 그룹을 지정 ORDER BY sal desc -- 파티션 안에서의 순서를 지정 ) as rank1, DENSE_RANK() OVER -- 순위를 부여한다.중복된 순위를 무시하고 순서대로 부여 ( PARTITION BY deptno -- 분석함수로 계산될 대상의 그룹을 지정 ORDER BY sal desc -- 파티션 안에서의 순서를 지정 ) as rank2, ROW_NUMBER() OVER -- 순위를 부여한다.중복된 순위 없..

Database/Oracle 2018.03.27