ROW_NUMBER (Transact-SQL) (한국어)

  • 2017 년 9 월 11 일
  • 읽는 데 5 분
    • j
    • c
    • M
    • m
    • M
    • +8

적용 대상 : SQL Server (지원되는 모든 버전) Azure SQL 데이터베이스 Azure SQL 관리 형 인스턴스 Azure Synapse Analytics 병렬 데이터웨어 하우스

결과 집합의 출력에 번호를 매 깁니다. 보다 구체적으로, 각 파티션의 첫 번째 행에 대해 1부터 시작하여 결과 집합의 파티션 내 행의 순차 번호를 반환합니다.

참고

ROW_NUMBER는 쿼리가 실행될 때 계산되는 임시 값입니다. 테이블에 숫자를 유지하려면 IDENTITY 속성 및 SEQUENCE를 참조하세요.

Transact-SQL 구문 규칙

구문

참고

SQL Server 2014 및 이전 버전의 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조하십시오.

인수

PARTITION BY value_expression
FROM 절에 의해 생성 된 결과 집합을 ROW_NUMBER 함수가 적용되는 파티션으로 나눕니다. value_expression은 결과 집합이 분할되는 열을 지정합니다. PARTITION BY가 지정되지 않은 경우 함수는 쿼리 결과 집합의 모든 행을 단일 그룹으로 처리합니다. 자세한 내용은 OVER 절 (Transact-SQL)을 참조하십시오.

order_by_clause
ORDER BY 절은 행에 고유 한 ROW_NUMBER 지정된 파티션 내. 필수입니다. 자세한 내용은 OVER 절 (Transact-SQL)을 참조하십시오.

반환 유형

bigint

일반 사항

보장 없음 ROW_NUMBER()를 사용하는 쿼리에서 반환 된 행은 다음 조건이 충족되지 않는 한 각 실행에서 정확히 동일하게 정렬됩니다.

  1. 값 분할 된 열의 값은 고유합니다.

  2. ORDER BY 열의 값은 고유합니다.

  3. 파티션 열과 ORDER BY 열의 값 조합은 고유합니다.

ROW_NUMBER()는 비 결정적입니다. 자세한 내용은 결정적 및 비 결정적 함수를 참조하십시오.

A. 간단한 예

다음 쿼리는 4 개의 시스템 테이블을 알파벳 순서로 반환합니다.

결과 집합은 다음과 같습니다.

이름 recovery_model_desc
마스터 단순
모델 FULL
msdb 단순
tempdb SIMPLE

각 항목 앞에 행 번호 열을 추가하려면 행에 ROW_NUMBER 함수가있는 열을 추가합니다 (이 경우 Row#). ORDER BY 절을 OVER 절까지 이동해야합니다.

다음은 결과 집합입니다.

Row # 이름 recovery_model_desc
1 마스터 SIMPLE
2 모델 FULL
3 msdb 단순
4 tempdb SIMPLE

iv id = 추가 recovery_model_desc 열의 “2638b72db3″>

절은 recovery_model_desc 값이 변경되면 번호 매기기를 다시 시작합니다.

다음은 결과 집합입니다.

Row # 이름 recovery_model_desc
1 모델 FULL
1 마스터 SIMPLE
2 msdb 단순
3 tempdb 단순

B. 영업 사원에 대한 행 번호 반환

다음 예에서는 연간 누계 판매 순위를 기준으로 Adventure Works Cycles의 영업 사원에 대한 행 번호를 계산합니다.

다음은 결과 집합입니다. .

C.행의 하위 집합 반환

다음 예에서는 SalesOrderHeader 테이블에있는 모든 행의 행 번호를 OrderDate50 행만 60 포함

D. PARTITION과 함께 ROW_NUMBER () 사용

다음 예에서는 PARTITION BY 인수를 사용하여 TerritoryName 열로 쿼리 결과 집합을 분할합니다. div>. OVER 절에 지정된 ORDER BY 절은 SalesYTD. SELECT 문의 ORDER BY 절은 TerritoryName에 의해 설정된 전체 쿼리 결과를 정렬합니다.

다음은 결과 집합입니다.

예 : Azure Synapse 분석 및 병렬 데이터웨어 하우스

E. 영업 사원의 행 번호 반환

다음 예에서는 할당 된 판매 할당량을 기준으로 영업 담당자의 ROW_NUMBER를 반환합니다.

다음은 부분 결과 집합.

F. PARTITION과 함께 ROW_NUMBER () 사용

다음 예제는 PARTITION BY 인수와 함께 ROW_NUMBER 함수를 사용하는 방법을 보여줍니다. 이렇게하면 ROW_NUMBER 함수가 각 파티션의 행에 번호를 매 깁니다.

다음은 부분적인 결과 집합입니다.

참고 항목

RANK (Transact-SQL)
DENSE_RANK (Transact-SQL)
NTILE (Transact-SQL)

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다