쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

ROW_NUMBER 창 함수 - Amazon Redshift

ROW_NUMBER 창 함수

OVER 절의 ORDER BY 표현식을 기준으로 행 그룹 내에서 1부터 현재 행의 서수를 할당합니다. PARTITION BY 절(옵션)이 존재하면 각 행 그룹의 서수가 재설정됩니다. ORDER BY 표현식 값이 동일한 행이라고 해도 비확정적으로 다른 행 번호를 받습니다.

구문

ROW_NUMBER() OVER( [ PARTITION BY expr_list ] [ ORDER BY order_list ] )

인수

( )

함수에 인수가 없지만 빈 괄호가 필요합니다.

OVER

ROW_NUMBER 함수에 대한 창 함수 절입니다.

PARTITION BY expr_list

선택 사항. 결과를 행 집합으로 나누는 하나 이상의 열 표현식입니다.

ORDER BY order_list

선택 사항. 집합 내 행의 순서를 정의하는 하나 이상의 열 표현식입니다. PARTITION BY를 지정하지 않으면 ORDER BY가 전체 테이블을 사용합니다.

ORDER BY가 고유한 순서를 지정하지 않거나 생략되면 행의 순서는 비확정적입니다. 자세한 내용은 창 함수 데이터에 대한 고유 순서 지정 섹션을 참조하세요.

반환 타입

BIGINT

예시

다음 예제에서는 WINSALES 테이블을 사용합니다. WINSALES 테이블에 대한 설명은 창 함수 예제를 위한 샘플 테이블 섹션을 참조하세요.

다음 예제에서는 테이블을 QTY(오름차순)로 정렬한 다음 각 행에 행 번호를 할당합니다. 결과는 창 함수 결과를 적용한 후에 정렬됩니다.

SELECT salesid, sellerid, qty, ROW_NUMBER() OVER( ORDER BY qty ASC) AS row FROM winsales ORDER BY 4,1; salesid sellerid qty row ---------+----------+-----+----- 30001 | 3 | 10 | 1 10001 | 1 | 10 | 2 10006 | 1 | 10 | 3 40005 | 4 | 10 | 4 30003 | 3 | 15 | 5 20001 | 2 | 20 | 6 20002 | 2 | 20 | 7 30004 | 3 | 20 | 8 10005 | 1 | 30 | 9 30007 | 3 | 30 | 10 40001 | 4 | 40 | 11

다음은 SELLERID를 기준으로 테이블을 분할하여 수량에 따라 각 파티션의 순서(오름차순)를 지정한 후 행 번호를 각 행에 할당하는 예입니다. 결과는 창 함수 결과를 적용한 후에 정렬됩니다.

SELECT salesid, sellerid, qty, ROW_NUMBER() OVER( PARTITION BY sellerid ORDER BY qty ASC) AS row_by_seller FROM winsales ORDER BY 2,4; salesid | sellerid | qty | row_by_seller ---------+----------+-----+----- 10001 | 1 | 10 | 1 10006 | 1 | 10 | 2 10005 | 1 | 30 | 3 20001 | 2 | 20 | 1 20002 | 2 | 20 | 2 30001 | 3 | 10 | 1 30003 | 3 | 15 | 2 30004 | 3 | 20 | 3 30007 | 3 | 30 | 4 40005 | 4 | 10 | 1 40001 | 4 | 40 | 2

다음 예제에서는 선택 절을 사용하지 않을 때의 결과를 보여줍니다.

SELECT salesid, sellerid, qty, ROW_NUMBER() OVER() AS row FROM winsales ORDER BY 4,1; salesid sellerid qty row ---------+----------+-----+----- 30001 | 3 | 10 | 1 10001 | 1 | 10 | 2 10005 | 1 | 30 | 3 40001 | 4 | 40 | 4 10006 | 1 | 10 | 5 20001 | 2 | 20 | 6 40005 | 4 | 10 | 7 20002 | 2 | 20 | 8 30003 | 3 | 15 | 9 30004 | 3 | 20 | 10 30007 | 3 | 30 | 11
프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.