WINDOWING 절의 구조
ROWS | RANGE | GROUPS BETWEEN <시작> AND <끝>
- ROWS
- 물리적 행 개수
- 정확히 N개 행을 포함하고 싶을 때
- RANGE
- 논리적 값 범위
- 같은 값을 가진 행을 모두 포함하고 싶을 때
- GROUPS
- 같은 값을 가진 그룹 단위
- 중복값을 하나의 그룹으로 처리할 때
- UNBOUNDED PRECEDING: 파티션의 첫 행
- N PRECEDING: 현재 행 기준 N개 이전 행
- CURRENT ROW: 현재 행
- N FOLLOWING: 현재 행 기준 N개 이후 행
- UNBOUNDED FOLLOWING: 파티션의 마지막 행
#### ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING
```
Math | 70 ← 2 PRECEDING (위로 2개)
Math | 71 ← 1 PRECEDING (위로 1개)
Math | 72 ← CURRENT ROW (현재)
Math | 80 ← 1 FOLLOWING (아래로 1개)
Math | 81 ← 2 FOLLOWING (아래로 2개)
---------
포함: 5개 행
합계: 70+71+72+80+81 = 374
```
#### RANGE BETWEEN 2 PRECEDING AND 2 FOLLOWING
```
범위: 72-2 ~ 72+2 = 70~74
Math | 70 ← ✅ (70은 70~74 범위)
Math | 71 ← ✅ (71은 70~74 범위)
Math | 72 ← ✅ (72는 70~74 범위, 현재)
Math | 80 ← ❌ (80 > 74, 범위 벗어남!)
Math | 81 ← ❌ (81 > 74, 범위 벗어남!)