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 함수의 기능과 차이점에 대해 알아보았습니다. 이러한 함수들은 데이터베이스에서 특정 그룹 내의 순번 또는 순위를 지정해야 할 경우에 유용하게 사용될 수 있습니다.
댓글