일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 공개서적
- 파이썬 TypeError
- 주상복합용지 분양
- 가장 많이 사용되는 파이썬 패키지
- Google vs OpenAI
- 가장 많이 사용되는 파이썬 라이브러리
- Python
- robux
- Google vs MicorSoft
- 전세보증보험
- 가장 인기있는 파이썬 라이브러리
- 2룸 오피스텔 투자
- 데이터 리터러시
- 나는 어디로?
- chatgpt vs bard
- 종합소득세
- PostgreSQL
- 가장 인기있는 파이썬 패키지
- chatgpt 100% 신뢰금지
- 주택임대사업자
- 소형주택 세액감면
- bard 100% 신뢰금지
- 다주택임대
- 종합과세
- 갤럭시탭 with Pen
- 임대소득외 추가소득이 있을 경우
- 오라클 데이터베이스 내장함수
- 상업시설용지 분양
- 오피스텔투자
- 라이브러리 vs 패키지
All thing of the world!
Oracle RANK 설명 : 오라클 함수 본문
1. 함수의 목적
Oracle RANK는 그룹내의 값 순위를 구한다.
순위 기준에 대해 동일한 값을 갖는 행은 동일한 순위를 갖는다.
동일한 순위를 갖는 행이 여러개 일 경우, 묶여진 행 수를 추가하여 다음 순위를 계산하기 때문에 순위는 연속적인 숫자가 아닐 수 있다.
이 기능은 TOP-N 및 BOTTOM-N에 유용하다.
2. 샘플을 통한 개념 퀵뷰
hr.employees에서 급여가 $ 15,500이고 수수료가 5 % 인 직원의 순위를 계산한다.
SELECT RANK(15500, .05) WITHIN GROUP
(ORDER BY salary, commission_pct) "Rank"
FROM employees;
Rank
----------
105
3. 사용방법
1) 집계함수
집계 함수로서, RANK는 주어진 ORDER BY 스펙과 관련하여 함수의 인수로 식별된 행의 순위를 계산한다.
함수의 인수는 각 그룹내의 단일행을 식별하기 때문에 각 집계 그룹 내에서 상수 표현식이여야 한다.
상수 인수 표현식과 집계의 ORDER BY 절에있는 표현식은 위치별로 일치해야 한다.
따라서 인수의 수는 같아야하며 형식은 호환 가능해야한다.
2) 분석함수
분석 함수로서 RANK는 order_by_clause를 기반으로 쿼리가 반환한 각 행의 순위를 계산한다
4. 함수 PARAMETER 설명
반환되는 데이터값든 NUMBER 타입이다.
5. 다양한 샘플표현
example1) 다음 쿼리는 직원 급여 중 15,500 달러의 급여에 대한 순위를 반환한다.
SELECT RANK(15500) WITHIN GROUP
(ORDER BY salary DESC) "Rank of 15500"
FROM employees;
Rank of 15500
--------------
4
example2) 급여를 기준으로 부서 60의 직원의 순위를 매 깁니다. 동일한 급여값은 동일한 순위(2)를 받고, 그 다음 순위(4)는 비연속적인 순위를 발생시키는 것에 주의하자.
SELECT department_id, last_name, salary,
RANK() OVER (PARTITION BY department_id ORDER BY salary) RANK
FROM employees WHERE department_id = 60
ORDER BY RANK, last_name;
DENSE_RANK와 비교해 보자.
SELECT department_id, last_name, salary,
DENSE_RANK() OVER (PARTITION BY department_id ORDER BY salary) RANK
FROM employees WHERE department_id = 60
ORDER BY RANK, last_name;
결과와 같이 DENSE_RANK는 동일한 순위값 뒤의 숫자가 연속적이다.
이것이 RANK와 DENSE_RANK의 차이점이다.
'IT > Oracle DBMS' 카테고리의 다른 글
Oracle ORA_INVOKING_USER 설명 : 오라클 함수 (0) | 2021.04.05 |
---|---|
Oracle ORA_INVOKING_USERID 설명 : 오라클 함수 (0) | 2021.04.05 |
Oracle RATIO_TO_REPORT 설명 : 오라클 함수 (0) | 2021.04.05 |
Oracle ROW_NUMBER 설명 : 오라클 함수 (0) | 2021.04.05 |
Oracle ROWIDTONCHAR 설명 : 오라클 함수 (0) | 2021.04.05 |