반응형
구조
이전 행 출력 :
LAG(대상컬럼, 출력하고자 하는 이전 행과의 거리) OVER (정렬기준)
이후 행 출력 :
LEAD(대상컬럼, 출력하고자 하는 이전 행과의 거리) OVER (정렬기준)
예제. 사원번호, 사원이름, 바로 전 행의 사원 번호, 바로 다음 행의 사원이름을 출력하시오.
SELECT empno, ename,
LAG(empno,1) OVER (ORDER BY empno) AS 이전행,
LEAD(empno,1) OVER (ORDER BY empno) AS 다음행
FROM emp;
문제 227. 사원 이름, 이전 행의 사원 이름, 다음 행의 사원 이름을 출력하시오.
SELECT ename,
LAG(ename,1) OVER (ORDER BY empno) AS 이전행,
LEAD(ename,1) OVER (ORDER BY empno) AS 다음행
FROM emp;
문제 228. 이름, 입사일, 바로 전에 입사한 사원의 입사일, 바로 다음 입사한 사원의 입사일을 출력하시오.
(입사순으로 정렬하여 출력하시오.)
SELECT ename AS 이름, hiredate AS 입사일,
LAG(hiredate,1) OVER (ORDER BY hiredate) AS "이전 입사일",
LEAD(hiredate,1) OVER (ORDER BY hiredate) AS "이후 입사일"
FROM emp
문제 229. 사원 테이블에서 이름, 입사일, 바로 전에 입사한 사원과의 간격일을 출력하시오.
SELECT ename, hiredate,
(hiredate - LAG(hiredate,1) OVER (ORDER BY hiredate)) AS DAYS
FROM emp;
'Oracle DBA > SQL' 카테고리의 다른 글
20230628 (6) SQL 048 ROW 를 COLUMN 으로 출력하기 2(PIVOT) (0) | 2023.06.28 |
---|---|
20230628 (5) SQL 047 : ROW를 COLUMN으로 출력하기 1(SUM+DECODE) (0) | 2023.06.28 |
20230627 (3) SQL 045 : 데이터 분석 함수로 데이터를 가로로 출력하기(LISTAGG) (0) | 2023.06.28 |
20230627 (2) SQL 044 : 데이터 분석 함수로 순위의 비율 출력하기(CUME_DIST) (0) | 2023.06.28 |
20230627 (1) SQL 043 : 데이터 분석 함수로 등급 출력하기(NTILE) (0) | 2023.06.28 |