문제
다음 윈도우 함수에서 VAL이 100인 행의 합계로 가장 적절한 것은?
<데이터>
| ID | VAL |
|---|---|
| 1 | 50 |
| 2 | 100 |
| 3 | 150 |
SQLSELECT ID, VAL, SUM(VAL) OVER( ORDER BY VAL ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING ) AS SUM_VAL FROM T;
① 50 ② 100 ③ 150 ④ 300
정답
4번
해설
정답: 4. VAL이 100인 현재 행을 기준으로 이전 1행 50, 현재 행 100, 다음 1행 150이 포함되어 합계는 300이다.
오답 풀이
- 1번: 이전 행만 계산한 값이다.
- 2번: 현재 행만 계산한 값이다.
- 3번: 다음 행만 계산한 값이다.
- 4번: 이전, 현재, 다음 행을 모두 합산한 값이다.
보충 개념 ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING은 현재 행 기준 앞뒤 1행씩 포함하는 물리적 프레임이다.