본문 바로가기
카테고리 없음

오라클 그룹별 순번, 순위 매기기(ROW_NUMBER, RANK) 함수

by kangs' tong 2023. 11. 14.

ROW_NUMBER 함수란?

ROW_NUMBER 함수는 오라클 데이터베이스에서 사용할 수 있는 순번을 부여하는 함수입니다. 이 함수는 특정 컬럼에 대해 정렬한 결과에 대해 각 행에 순번을 부여해주는 역할을 합니다. ROW_NUMBER 함수는 윈도우 함수로 분류되며, PARTITION BY와 ORDER BY 구문을 함께 사용하여 순번을 할당합니다.

ROW_NUMBER 함수는 다음과 같은 형식으로 사용할 수 있습니다.

ROW_NUMBER() OVER (PARTITION BY 컬럼1, 컬럼2, ... ORDER BY 컬럼3, 컬럼4, ...)

위의 형식에서 PARTITION BY 절은 순번을 부여할 기준이 되는 컬럼들을 지정하는 역할을 합니다. ORDER BY 절은 순번을 정할 때 사용할 컬럼들의 순서를 지정합니다.

RANK 함수란?

RANK 함수는 ROW_NUMBER 함수와 비슷하게 순번을 부여하는 함수이지만, 동일한 값들에 대해서는 같은 순번을 부여합니다. 다른 말로 하면, 중복된 값들에 대해서는 같은 순위를 부여하는 기능을 제공합니다. RANK 함수는 ROW_NUMBER 함수와 동일하게 PARTITION BY와 ORDER BY 구문을 사용하여 순번을 할당합니다.

RANK 함수는 다음과 같은 형식으로 사용할 수 있습니다.

RANK() OVER (PARTITION BY 컬럼1, 컬럼2, ... ORDER BY 컬럼3, 컬럼4, ...)

위의 형식에서 PARTITION BY 절은 순번을 부여할 기준이 되는 컬럼들을 지정하는 역할을 합니다. ORDER BY 절은 순번을 정할 때 사용할 컬럼들의 순서를 지정합니다.

ROW_NUMBER 함수와 RANK 함수 비교하기

  • ROW_NUMBER 함수는 PARTITION BY 절을 사용해 기준 컬럼들을 지정하여 각 그룹에 순번을 부여하며, 중복된 값에 대해서도 각각 다른 순번을 할당합니다.
  • RANK 함수는 PARTITION BY 절을 사용해 기준 컬럼들을 지정하여 각 그룹에 순번을 부여하며, 중복된 값에 대해서는 같은 순번을 할당합니다.

즉, ROW_NUMBER 함수는 그룹 내에서의 각 행의 순번을 지정해주는 반면에, RANK 함수는 그룹 내에서 중복된 값에 대해서도 동일한 순번을 지정해 줍니다.

정리

  • ROW_NUMBER 함수는 순번을 부여하는 함수이며, 중복된 값들에 대해서도 각각 다른 순번을 부여합니다.
  • RANK 함수는 ROW_NUMBER 함수와 비슷하게 순번을 부여하지만, 중복된 값들에 대해서는 같은 순번을 부여합니다.

위의 설명을 통해 오라클의 ROW_NUMBER 함수와 RANK 함수의 기능과 차이점에 대해 알아보았습니다. 이러한 함수들은 데이터베이스에서 특정 그룹 내의 순번 또는 순위를 지정해야 할 경우에 유용하게 사용될 수 있습니다.

댓글