문제
다음 [판매] 테이블에서 SQL문을 실행했을 때, 상품명이 'C'인 행의 cnt 값을 쓰시오.
| 상품명 | 카테고리 | 판매량 |
|---|---|---|
| A | 전자 | 50 |
| B | 전자 | 80 |
| C | 의류 | 30 |
| D | 의류 | 30 |
| E | 의류 | 70 |
SQLSELECT 상품명, COUNT(*) OVER (PARTITION BY 카테고리 ORDER BY 판매량 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS cnt FROM 판매;
정답
2
2
해설
COUNT() OVER 윈도우 함수가 PARTITION BY 카테고리로 파티션을 나누고, ORDER BY 판매량으로 정렬한다. RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW는 파티션 시작부터 현재 행과 같은 값까지의 행을 카운트한다. 의류 카테고리에서 C(30)와 D(30)는 같은 판매량이므로, C의 cnt는 C와 D 두 행을 카운트하여 2가 된다.