문제
다음 [판매] 테이블에서 SQL문을 실행했을 때, 지역이 '서울'이고 상품이 'B'인 행의 tile_num 값을 쓰시오.
| 지역 | 상품 | 수량 |
|---|---|---|
| 서울 | A | 10 |
| 서울 | B | 25 |
| 서울 | C | 15 |
| 부산 | A | 30 |
| 부산 | B | 20 |
| 부산 | C | 35 |
SQLSELECT 지역, 상품, 수량, NTILE(3) OVER (PARTITION BY 지역 ORDER BY 수량) AS tile_num FROM 판매;
정답
3
3
해설
NTILE(3)은 각 파티션을 3개 구간으로 나눈다. 서울 지역에서 수량 순으로 정렬하면: A(10), C(15), B(25). 3개 행을 3개 구간으로 나누면 각 구간에 1개씩 배치되어 A=1, C=2, B=3이 된다. 따라서 서울 지역 상품 B의 tile_num은 3이다.