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

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

문제

다음 [주문] 테이블에서 SQL문을 실행했을 때 고객='홍길동'인 행의 next_order 값을 쓰시오.

고객주문일금액
홍길동2024-01-1550000
김철수2024-01-2030000
홍길동2024-02-1075000
이영희2024-02-1540000
홍길동2024-03-0560000
SQL
SELECT 고객, 주문일, 금액, LEAD(금액, 2, -1) OVER (PARTITION BY 고객 ORDER BY 주문일) AS next_order FROM 주문 WHERE 고객 IN ('홍길동', '김철수', '이영희');

정답

60000

60000

해설

LEAD(금액, 2, -1)는 현재 행에서 2행 뒤의 금액 값을 가져오며, 없으면 -1을 반환합니다. PARTITION BY 고객으로 고객별로 분할되고, ORDER BY 주문일로 정렬됩니다. 홍길동의 첫 번째 행(2024-01-15, 50000)에서 2행 뒤는 세 번째 행(2024-03-05, 60000)이므로 next_order는 60000입니다.

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

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

[정보처리기사 실기] SQL - LAG 윈도우 함수 SQL 기출 #2807 | sqldpass