오라클 정렬 함수는 데이터를 정렬할 때 사용합니다. 아래는 몇 가지 예시를 들어 설명해 드리겠습니다.
RANK
데이터를 정렬하여 각 행에 대한 순위를 구합니다. 결과 집합의 행에 대한 고유 순위를 계산합니다. 순위는 동률이 있을 경우 같은 순위를 가집니다. 예를 들어, RANK(3,1,4,1,5) 결과는 3,1,2,1,4가 됩니다.
SELECT
employee_name,
salary,
RANK() OVER (ORDER BY salary DESC) as rank
FROM employees;
이 쿼리는 employees 테이블에서 사원 이름, 급여, 급여를 기준으로 한 순위를 조회합니다. 순위는 급여가 높은 순으로 부여됩니다.
DENSE_RANK
RANK 함수와 비슷하지만, 같은 순위를 가진 행에 대해 같은 순위를 부여합니다. 결과 집합의 행에 대한 고유 순위를 계산합니다. 순위는 동률이 있을 경우 연속된 순위를 가집니다. 예를 들어, DENSE_RANK(3,1,4,1,5) 결과는 3,1,2,2,4가 됩니다.
SELECT
employee_name,
salary,
DENSE_RANK() OVER (ORDER BY salary DESC) as rank
FROM employees;
이 쿼리는 employees 테이블에서 사원 이름, 급여, 급여를 기준으로 한 순위를 조회합니다. 순위는 급여가 높은 순으로 부여되며, 급여가 같은 행들에 대해 동일한 순위를 부여합니다.
ROW_NUMBER
정렬된 행에 대해 각 행에 대한 순서를 구합니다. 결과 집합의 행에 대한 고유 번호를 계산합니다. 예를 들어, ROW_NUMBER(3,1,4,1,5) 결과는 3,1,4,2,5가 됩니다.
SELECT
employee_name,
salary,
ROW_NUMBER() OVER (ORDER BY salary DESC) as row_number
FROM employees;
이 쿼리는 employees 테이블에서 사원 이름, 급여, 급여를 기준으로 한 순번을 조회합니다. 순번은 급여가 높은 순으로 부여됩니다.
ROW_NUMBER() 함수는 결과 집합을 정렬하지 않아도 되며, 순번을 부여할 경우에 사용하면 좋습니다.
'oracle' 카테고리의 다른 글
오라클 case문 where 절에 활용하기 (0) | 2023.02.24 |
---|---|
Oracle ROWID 사용하기 (0) | 2023.02.17 |
오라클 날짜 함수의 종류와 활용 예시 (0) | 2023.01.18 |
오라클 숫자 함수의 종류와 활용 예시 (0) | 2023.01.17 |
오라클 연산 함수의 다양한 종류 (0) | 2023.01.14 |