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

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

문제

다음 [매출] 테이블에서 SQL문을 실행했을 때, 이름이 '박'인 행의 last_val 값을 쓰시오.

이름부서금액
A300
A100
A200
B400
B250
SQL
SELECT 이름, 부서, 금액, LAST_VALUE(금액) OVER (PARTITION BY 부서 ORDER BY 금액 ASC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS last_val FROM 매출;

정답

300

300

해설

PARTITION BY 부서로 A/B 부서별로 분할되고, ORDER BY 금액 ASC로 금액 오름차순 정렬된다. A 부서에서는 이(100) → 박(200) → 김(300) 순으로 정렬된다. LAST_VALUE()는 윈도우 프레임 내의 마지막 값을 반환하는데, ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING으로 파티션 전체 범위를 지정했으므로, A 부서에서 가장 큰 금액인 김의 300이 last_val이 된다.

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

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