SQLDSQL 활용윈도우 함수난이도 1MCQ

SQLD 윈도우 함수 기출문제 #62

문제

다음 SQL의 실행 결과에서 직원 'C'의 PREV_SAL 값은?

테이블: EMP (NAME VARCHAR(10), SALARY NUMBER) 데이터: A=1000, B=1500, C=2000, D=2500 (SALARY 오름차순)

SQL
SELECT NAME, SALARY, LAG(SALARY, 2, 0) OVER(ORDER BY SALARY) AS PREV_SAL FROM EMP ORDER BY SALARY;

① 0 ② 1000 ③ 1500 ④ NULL

정답

2

해설

정답: ② LAG(SALARY, 2, 0)는 현재 행에서 2행 이전의 SALARY 값을 반환하며, 값이 없으면 기본값 0을 반환합니다. C(2000)의 2행 이전은 A(1000)이므로 1000입니다. ①은 LAG 함수에서 참조할 행이 없을 때의 기본값이지만 C는 2행 이전에 A가 존재합니다. ③은 1행 이전인 B의 값입니다. ④는 기본값을 지정했으므로 NULL이 나올 수 없습니다.

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

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

[SQLD] 윈도우 함수 SQL 활용 기출 #62 | sqldpass