문제
다음 SQL에서 윈도우 함수의 프레임 절 동작으로 가장 적절한 것은?
테이블 SALES (MONTH, AMOUNT): 1, 100 2, 200 3, 150 4, 300
SQLSELECT MONTH, SUM(AMOUNT) OVER(ORDER BY MONTH ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) FROM SALES;
① 각 행에서 현재 행부터 다음 1개 행까지의 합계 ② 각 행에서 이전 1개 행부터 현재 행까지의 합계 ③ 모든 행의 누적 합계 ④ 각 행에서 현재 행만의 값
정답
1번
해설
ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING은 현재 행부터 다음 1개 행까지를 프레임으로 설정합니다. 따라서 MONTH=1일 때는 100+200=300, MONTH=2일 때는 200+150=350과 같이 계산됩니다. ②는 PRECEDING을 사용한 경우이고, ③은 누적 합계, ④는 프레임 없이 단순 값을 의미합니다.