NTILE

NTILE은 정렬된 행을 균등한 버킷으로 나눈다

NTILE(N)은 순서가 정해진 결과를 N개의 구간으로 나눕니다. 남는 행은 앞쪽 버킷부터 하나씩 더 받습니다.

1번 버킷
2번 버킷
3번 버킷

NTILE(3), 총 10행

버킷 1
1A
2B
3C
4D
버킷 2
5E
6F
7G
버킷 3
8H
9I
10J

정렬 방향이 의미를 바꾼다

NTILE(4) OVER (ORDER BY score DESC)

높은 점수가 1번 버킷에 들어갑니다.

NTILE(4) OVER (ORDER BY score)

낮은 점수가 1번 버킷에 들어갑니다.

포인트

NTILE은 값의 범위를 같은 폭으로 자르는 함수가 아니라, 정렬된 행 수를 최대한 균등하게 나누는 함수입니다. 동점 행도 보조 정렬이 없으면 서로 다른 버킷에 들어갈 수 있습니다.