문제
다음 SQL문의 실행 결과로 가장 적절한 것은?
SELECT 이름, LAG(점수, 2) OVER (ORDER BY 점수 DESC) AS 이전점수 FROM 성적;
① 현재 행보다 점수가 2점 낮은 행의 점수를 가져온다 ② 현재 행보다 2행 앞의 점수를 가져온다 ③ 현재 행보다 점수가 2점 높은 행의 점수를 가져온다 ④ 현재 행보다 2행 뒤의 점수를 가져온다
정답
2번
해설
LAG(점수, 2)는 현재 행을 기준으로 2행 앞의 점수 값을 가져오는 윈도우 함수이다. ORDER BY 점수 DESC로 정렬되어 있으므로, 점수가 높은 순으로 정렬된 상태에서 2행 앞의 데이터를 참조한다. ①③은 점수 차이를 의미하는 것이 아니고, ④는 LEAD 함수의 동작이다.