NTH_VALUE 창 함수 - Amazon Redshift

NTH_VALUE 창 함수

NTH_VALUE 창 함수는 창의 첫 번째 행과 관련하여 창 프레임에서 지정된 행의 표현식 값을 반환합니다.

구문

NTH_VALUE (expr, offset) [ IGNORE NULLS | RESPECT NULLS ] OVER ( [ PARTITION BY window_partition ] [ ORDER BY window_ordering frame_clause ] )

인수

expr

함수가 실행되는 대상 열 또는 표현식입니다.

Offset

창에서 표현식을 반환할 첫 번째 행에 대한 행 번호를 결정합니다. offset은 상수 또는 0보다 큰 양의 정수이어야 하는 표현식이 될 수 있습니다.

IGNORE NULLS

Amazon Redshift에서 사용할 행을 결정할 때 null 값을 건너뛰어야 한는 것을 의미하는 명세(옵션)입니다. IGNORE NULLS를 지정하지 않으면 NULL 값이 포함됩니다.

RESPECT NULLS

Amazon Redshift에서 사용할 행을 결정할 때 null 값을 포함시켜야 한다는 것을 의미합니다. RESPECT NULLS는 IGNORE NULLS를 지정하지 않은 경우 기본적으로 지원됩니다.

OVER

창 파티션, 순서 및 창 프레임을 지정합니다.

PARTITION BY window_partition

OVER 절에서 각 그룹의 레코드 범위를 설정합니다.

ORDER BY window_ordering

각 파티션의 행을 정렬합니다. ORDER BY를 생략하면 기본 프레임은 파티션에 속한 모든 행으로 구성됩니다.

frame_clause

집계 함수에서 ORDER BY 절이 사용되면 명시적인 프레임 절이 필요합니다. 프레임 절은 순서가 지정된 결과에 행 집합을 추가하거나 제거함으로써 함수의 창에 포함되는 행 집합을 정제하는 역할을 하며, ROWS 키워드와 관련 지정자로 구성됩니다. 창 함수 구문 요약 섹션을 참조하세요.

NTH_VALUE 윈도 함수는 Amazon Redshift 데이터 형식을 모두 사용하는 표현식을 지원합니다. 반환 형식은 expr 형식과 동일합니다.

예제

다음은 California, Florida 및 New York 주에서 세 번째로 가장 큰 장소의 좌석 수를 동일한 주에서 나머지 장소의 좌석 수와 비교하는 예입니다.

select venuestate, venuename, venueseats, nth_value(venueseats, 3) ignore nulls over(partition by venuestate order by venueseats desc rows between unbounded preceding and unbounded following) as third_most_seats from (select * from venue where venueseats > 0 and venuestate in('CA', 'FL', 'NY')) order by venuestate; venuestate | venuename | venueseats | third_most_seats ------------+--------------------------------+------------+------------------ CA | Qualcomm Stadium | 70561 | 63026 CA | Monster Park | 69843 | 63026 CA | McAfee Coliseum | 63026 | 63026 CA | Dodger Stadium | 56000 | 63026 CA | Angel Stadium of Anaheim | 45050 | 63026 CA | PETCO Park | 42445 | 63026 CA | AT&T Park | 41503 | 63026 CA | Shoreline Amphitheatre | 22000 | 63026 FL | Dolphin Stadium | 74916 | 65647 FL | Jacksonville Municipal Stadium | 73800 | 65647 FL | Raymond James Stadium | 65647 | 65647 FL | Tropicana Field | 36048 | 65647 NY | Ralph Wilson Stadium | 73967 | 20000 NY | Yankee Stadium | 52325 | 20000 NY | Madison Square Garden | 20000 | 20000 (15 rows)