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

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

문제

다음 [거래] 테이블에서 SQL문을 실행했을 때 고객코드='C02'이면서 거래일='2024-03-05'인 행의 prev_gap 값을 쓰시오.

고객코드거래일거래금액
C012024-01-15250000
C012024-02-20180000
C022024-01-10320000
C022024-03-05410000
C032024-02-12150000
SQL
SELECT 고객코드, 거래일, 거래금액, COALESCE(거래금액 - FIRST_VALUE(거래금액) OVER (PARTITION BY 고객코드 ORDER BY 거래일 ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING), 0) AS prev_gap FROM 거래 ORDER BY 고객코드, 거래일;

정답

90000

90000

해설

PARTITION BY 고객코드로 고객별로 나누고, ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING은 바로 이전 행만 프레임에 포함한다. C02의 2024-03-05 행에서 이전 거래금액은 320000이고 현재 거래금액은 410000이므로 410000 - 320000 = 90000이다.

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

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

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