문제
NTILE(2) 윈도우 함수를 적용했을 때의 결과로 가장 적절한 것은? (단, 데이터는 1, 2, 3, 4 이다.)
① 1, 1, 2, 2 ② 1, 2, 3, 4 ③ 1, 1, 1, 2 ④ 2, 2, 1, 1
정답
1번
해설
정답: 1. NTILE(2) 는 정렬된 4개 행을 가능한 한 균등하게 2개 그룹으로 나눠 그룹 번호를 매긴다.
오답 풀이
- ①: 정답. 4행 ÷ 2그룹 = 그룹당 2행이므로 앞 두 행은 1, 뒤 두 행은 2 → 1, 1, 2, 2.
- ②: ROW_NUMBER() 의 결과이지 NTILE 의 결과가 아니다.
- ③: 3:1 로 나뉘는 형태로, 균등 분할 원칙과 맞지 않는다.
- ④: NTILE 그룹 번호는 정렬 순서대로 1부터 증가하므로 2,2,1,1 처럼 역순으로 매겨지지 않는다.
보충 개념 NTILE(n) 은 전체 행을 n 개의 버킷으로 나눈다. 행 수가 버킷 수로 나누어떨어지지 않으면 앞쪽 버킷부터 한 행씩 더 채운다(예: 5행을 NTILE(2) → 3행+2행 = 1,1,1,2,2).