LJC.LOG
April 8, 2024

Oracle 오라클 그룹 별 순번 매기는 법 ( ROW_NUMBER )

ROW_NUMBER 란?

안녕하세요. 그룹화된 데이터를 조회할 때 순번을 매긴 행 번호가 필요할 때가 있습니다.

예를 들어, 학교와 학급별로 성별에 따른 순번이 필요할 때, 이러한 경우에는 ROW_NUMBER() 함수를 사용하면 됩니다.

사용 예시

예시화면

위와 같이 학교, 학급별로 성별에 대한 순번이 필요할 때 아래와 같이 하시면 됩니다.

사용방법 )

아래 예시는 학교, 학급별로 성별에 따른 순번을 매기는 쿼리입니다.

쿼리문 )

SELECT 학교,

학급,

성별,

인원,

ROW_NUMBER() OVER (PARTITION BY 학교, 학급, 성별 ORDER BY 성별, 인원)

FROM DUAL

ROW_NUMBER() 함수 설명

ROW_NUMBER() 함수는 지정된 그룹 내에서 행의 고유한 순번을 생성합니다.

이 함수는 다음과 같은 구조로 사용됩니다.

ROW_NUMBER() OVER (PARTITION BY [그룹핑컬럼] ORDER BY [정렬])

PARTITION BY: 그룹화할 컬럼을 지정합니다. 예를 들어, PARTITION BY 학교, 학급, 성별은 학교, 학급, 성별에 따라 데이터를 그룹화합니다.

ORDER BY: 그룹 내에서 순서를 지정할 컬럼을 정의합니다. 예를 들어, ORDER BY 성별, 인원은 성별과 인원 순으로 데이터를 정렬합니다.

PARTITION BY의 중요성

PARTITION BY 절을 사용하여 데이터를 그룹화하면 각 그룹 내에서 독립적으로 순번을 매길 수 있습니다.

PARTITION BY 절을 생략하면 전체 데이터 집합에 대해 하나의 일련번호를 생성합니다.

ROW_NUMBER()와 유사한 함수

순번을 매기는 방법에는 ROW_NUMBER() 외에도 다음과 같은 함수들이 있습니다

  • RANK(): 동일한 값에 대해 같은 순번을 매기지만 순번이 건너뛰는 방식으로 부여됩니다.
  • DENSE_RANK(): 동일한 값에 대해 같은 순번을 매기지만 순번이 건너뛰지 않는 방식으로 부여됩니다.
  • NTILE(n): 결과를 n개의 동일한 크기의 그룹으로 나누고 각 그룹에 고유 번호를 부여합니다.

ROW_NUMBER() 함수는 데이터 분석 및 리포팅 시 매우 유용하게 사용됩니다.

특히 그룹화된 데이터 내에서 순번을 매겨야 할 때 매우 편리합니다.

실제 업무에서도 고객사로부터 데이터 자료 요청을 받을 때 자주 사용되는 함수입니다.

위 설명을 바탕으로 ROW_NUMBER() 함수를 활용하여 데이터를 효율적으로 처리하시기 바랍니다.

궁금하신 점이 있으면 댓글로 문의해 주세요.

읽어주셔서 감사합니다. 😊

Related Posts