정보처리기사 실기SQLSQL - 윈도우 함수난이도 5SHORT_ANSWER

정보처리기사 실기 SQL - 윈도우 함수 기출문제 #212

문제

다음 [직원] 테이블에서 SQL문을 실행했을 때, 이름이 '김철수'인 행의 prev_sal 값을 쓰시오. (NULL인 경우 'NULL'이라고 쓰시오)

이름부서급여
이영희개발4500
김철수개발5000
박민수개발4800
최지은영업4200
SQL
SELECT 이름, 급여, LAG(급여, 1) OVER (PARTITION BY 부서 ORDER BY 급여 ASC) AS prev_sal FROM 직원;

정답

4800

4800

해설

LAG() 함수는 현재 행의 이전 행 값을 가져옵니다.

  1. PARTITION BY 부서로 개발 부서만 분리됩니다.
  2. ORDER BY 급여 ASC로 개발 부서 내에서 급여 오름차순 정렬합니다.
  3. 정렬 결과: 이영희(4500) → 박민수(4800) → 김철수(5000)
  4. LAG(급여, 1)은 현재 행의 바로 이전 행의 급여를 가져옵니다.
  5. 김철수(5000)의 바로 이전 행은 박민수(4800)이므로 prev_sal = 4800입니다.

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.