NTILE 창 함수 - Amazon Redshift

NTILE 창 함수

NTILE 창 함수는 파티션에서 순서가 지정된 행을 최대한 같은 크기의 순위 그룹 수로 지정 분할한 후 임의의 행이 해당하는 그룹을 반환합니다.

구문

NTILE (expr) OVER ( [ PARTITION BY expression_list ] [ ORDER BY order_list ] )

인수

expr

순위 그룹 수이며, 각 파티션마다 0보다 큰 양의 정수가 되어야 합니다. expr 인수가 NULL 값을 허용해서는 안 됩니다.

OVER

창 파티션 및 순서를 지정하는 절입니다. OVER 절에는 창 프레임 명세가 포함될 수 없습니다.

PARTITION BY window_partition

선택 사항입니다. OVER 절에서 각 그룹의 레코드 범위입니다.

ORDER BY window_ordering

선택 사항입니다. 각 파티션의 행을 정렬하는 표현식입니다. ORDER BY 절을 생략할 경우 순위 결정 방식은 동일합니다.

ORDER BY에서 고유한 순서를 지정하지 않으면 행의 순서는 비확정적입니다. 자세한 내용은 창 함수 데이터에 대한 고유 순서 지정 단원을 참조하십시오.

반환 타입

BIGINT

예제

다음은 2008년 8월 26일 Hamlet 공연 티켓 가격을 4개 순위 그룹으로 구분하는 예입니다. 결과 집합에서는 17개 행이 1순위부터 4순위까지 거의 균일하게 분할됩니다.

select eventname, caldate, pricepaid, ntile(4) over(order by pricepaid desc) from sales, event, date where sales.eventid=event.eventid and event.dateid=date.dateid and eventname='Hamlet' and caldate='2008-08-26' order by 4; eventname | caldate | pricepaid | ntile -----------+------------+-----------+------- Hamlet | 2008-08-26 | 1883.00 | 1 Hamlet | 2008-08-26 | 1065.00 | 1 Hamlet | 2008-08-26 | 589.00 | 1 Hamlet | 2008-08-26 | 530.00 | 1 Hamlet | 2008-08-26 | 472.00 | 1 Hamlet | 2008-08-26 | 460.00 | 2 Hamlet | 2008-08-26 | 355.00 | 2 Hamlet | 2008-08-26 | 334.00 | 2 Hamlet | 2008-08-26 | 296.00 | 2 Hamlet | 2008-08-26 | 230.00 | 3 Hamlet | 2008-08-26 | 216.00 | 3 Hamlet | 2008-08-26 | 212.00 | 3 Hamlet | 2008-08-26 | 106.00 | 3 Hamlet | 2008-08-26 | 100.00 | 4 Hamlet | 2008-08-26 | 94.00 | 4 Hamlet | 2008-08-26 | 53.00 | 4 Hamlet | 2008-08-26 | 25.00 | 4 (17 rows)