SQL 개발자 자격증SQL 활용윈도우 함수 LAG/LEAD난이도 2MCQ

SQL 개발자 자격증 윈도우 함수 LAG/LEAD 기출문제 #21884

문제

사원들을 급여 오름차순으로 정렬했을 때, 각 사원의 바로 직전(앞) 행의 급여를 함께 출력하려고 한다. (㉠)에 들어갈 윈도우 함수로 가장 적절한 것은?

① LAG(급여) OVER (ORDER BY 급여) ② LAG(급여) OVER (ORDER BY 급여 DESC) ③ LEAD(급여) OVER (ORDER BY 급여) ④ LEAD(급여) OVER (ORDER BY 급여 DESC)

정답

1

해설

정답은 ①이다.

LAG(컬럼)는 현재 행을 기준으로 정렬 순서상 '이전(앞) 행'의 값을 가져온다. 급여를 오름차순(ORDER BY 급여)으로 정렬하면 직전 행은 급여가 한 단계 작은 행이 되므로, LAG(급여) OVER (ORDER BY 급여)가 바로 직전급여를 반환한다.

오답 풀이 ② ORDER BY를 DESC로 하면 정렬 방향이 뒤집혀, LAG가 가져오는 '이전 행'이 실제로는 급여가 더 큰 행이 되어 의도한 직전(작은쪽) 값이 아니다. ③ LEAD는 '다음(뒤) 행'의 값을 가져오므로 직전이 아니라 직후 급여가 출력된다. ④ LEAD + DESC는 방향까지 반대라 오름차순 기준의 직전 값과 다르다.

보충: LAG(col, offset, default), LEAD(col, offset, default) 형태로 몇 행 앞/뒤를 볼지와 NULL 대체값을 지정할 수 있다.

SQL 개발자 자격증 SQL 활용 다른 기출문제

SQL 개발자 자격증 시험 준비 가이드

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

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

[SQL 개발자 자격증] 윈도우 함수 LAG/LEAD SQL 활용 기출 #21884 | 문어CBT