SQL

SQL 16(데이터 분석 함수로 바로 전 행과 다음 행 출력하기 LAG / LEAD)

아리빠 2023. 5. 16. 19:26

1. 사원 번호, 이름, 월급을 출력하고 그 옆에 바로 전 행의 월급을 출력하고, 또 옆에 바로 다음 행의 월급 출력하기 

 

●LAG

- 바로 전 행의 데이터 출력하는 함수

- 숫자 1을 사용하면 바로 전 행이 출력된다

- 숫자 2를 사용하면 바로 전전 행이 출력된다 

●READ

- 바로 다음 행의 데이터 출력하는 함수

- 숫자 1을 사용하면 바로 다음 행이 출력된다

- 숫자 2를 사용하면 바로 다음 다음 행이 출력된다 

 

처음 실행해본 코드, 오류가 떡하니 나와버렸다

 

왜 오류가 생길까 하나하나 뜯어보다가 as 전행과, as 다음행에서 오류가 생겼다

제외하고 코드 입력하니 값이 출력되었고,

"전행" , "다음행" 을 통해 고쳐주었다.

 

 

2. 직업이 ANALYST 또는 MANAGER인 사원들의 사원번호, 이름, 입사일,  바로전에 입사한 사원의 입사일, 바로 다음에 입사한 사원의 입사일 출력하기

 

부서별로 출력하고 싶을 땐?

lag(hiredate,1) over (partition by deptno order by hiredate) "전행"