학습용 기출·복원자료 분류 확인SQLD · 2023년 50회 SQL 기본 및 활용 · 49번
현재 행의 두 행 전 값이 없으면 700을 반환하는 표현은?
1
LAG(값, 700, 2)
오답 이유‘LAG(값, 700, 2)’은 이 문항에서 요구하는 ‘LAG(값, 2, 700) OVER(ORDER BY 정렬열)’의 정의·역할과 구분된다. LAG의 두 번째 인수는 이동할 행 수이고 세 번째 인수는 대상 행이 없을 때 기본값이다. 따라서 빈칸 값은 각각 2와 700이다. 따라서 1번 보기 ‘LAG(값, 700, 2)’의 적용 여부를 문제 조건과 대조해야 한다.
2
LEAD(값, 2, 700)
오답 이유LEAD는 이전이 아니라 뒤쪽 두 행을 참조한다. 따라서 2번 보기 ‘LEAD(값, 2, 700)’의 적용 여부를 문제 조건과 대조해야 한다.
3
LAG(값, 1, 700)
오답 이유한 행 전을 가져오므로 요구한 두 행 전과 다르다. 따라서 3번 보기 ‘LAG(값, 1, 700)’의 적용 여부를 문제 조건과 대조해야 한다.
4
LAG(값, 2, 700) OVER(ORDER BY 정렬열)
정답 근거LAG의 두 번째 인수는 이동할 행 수이고 세 번째 인수는 대상 행이 없을 때 기본값이다. 따라서 빈칸 값은 각각 2와 700이다. 따라서 4번 보기 ‘LAG(값, 2, 700) OVER(ORDER BY 정렬열)’의 적용 여부를 문제 조건과 대조해야 한다.
ANSWER & EXPLANATION
정답 4번
핵심 판단은 4번 ‘LAG(값, 2, 700) OVER(ORDER BY 정렬열)’입니다. LAG의 두 번째 인수는 이동할 행 수이고 세 번째 인수는 대상 행이 없을 때 기본값이다. 따라서 빈칸 값은 각각 2와 700이다.