IT

[MSSQL] ROW_NUMBER() 함수 사용법

우주벨루가 2022. 9. 29. 16:13
728x90
320x100
ROW_NUMBER함수 정의
  • 결과 집합의 PARTITION 내 각 행에 순차적인 정수를 할당하는 윈도우 함수

 

ROW_NUMBER함수 특징
  • 행의 번호는 각 PARTITION에 대해 1번부터 할당
  • 중복 값의 경우에도 다른 정수 값 할당

 

ROW_NUMBER함수 구문
SELECT
	ROW_NUMBER() OVER( ORDER BY 기준컬럼명 asc ) AS [NUM]-- 오름차순 기준 
    , *
FROM 대상테이블
ORDER BY 기준컬럼명 asc -- 동일하게 설정 (동일하게 하지 않을 경우, 순서대로 조회되지 않음)

 

* ROW_NUMBER()함수는 정수를 순차적으로 할당하는 윈도우 함수이므로 ORDER BY절이 필수적으로 필요.

 

[예제1] 특정한 기준 없이, 정렬할 경우

SELECT 
	ROW_NUMBER() OVER ( ORDER BY (SELECT 1) ) as [NUM]
    , *
FROM 대상테이블

 

[예제2] 특정한 컬럼명 기준으로, 그룹핑하여 정렬할 경우

SELECT
	ROW_NUMBER() OVER ( PARTITON BY 컬럼명 ORDER BY 기준컬럼명 ) as [NUM]
    , *
FROM 대상테이블

* PARTITION BY 절은 결과 집합을 파티션으로 나눈다. 

  각 파티션에 별도로 정수를 할당하며, 각 파티션 별로 1번부터 할당한다.     

  (PARTITION BY 절은 옵션, 기재하지 않는 경우 전체를 한 집합으로 인식)

728x90