RANK()
→ 등수(순위)를 반환하는 함수
SELECT EMPNO "사원번호", ENAME "사원명", DEPTNO "부서번호", SAL "급여"
, RANK() OVER(ORDER BY SAL DESC) "전체급여순위" -- (내림차순으로 순위)
FROM EMP;
--==>>
/*
7839 KING 10 5000 1
7902 FORD 20 3000 2
:
7900 JAMES 30 950 13
7369 SMITH 20 800 14
*/
PARTITION BY
SELECT EMPNO "사원번호", ENAME "사원명", DEPTNO "부서번호", SAL "급여"
, RANK() OVER(PARTITION BY DEPTNO ORDER BY SAL DESC) "부서별급여순위"
, RANK() OVER(ORDER BY SAL DESC) "전체급여순위"
FROM EMP;
--==>>
/*
7839 KING 10 5000 1 1
7902 FORD 20 3000 1 2
7788 SCOTT 20 3000 1 2
7566 JONES 20 2975 3 4
7698 BLAKE 30 2850 1 5
7782 CLARK 10 2450 2 6
7499 ALLEN 30 1600 2 7
7844 TURNER 30 1500 3 8
7934 MILLER 10 1300 3 9
7521 WARD 30 1250 4 10
7654 MARTIN 30 1250 4 10
7876 ADAMS 20 1100 4 12
7900 JAMES 30 950 6 13
7369 SMITH 20 800 5 14
*/
ORDER BY
SELECT EMPNO "사원번호", ENAME "사원명", DEPTNO "부서번호", SAL "급여"
, RANK() OVER(PARTITION BY DEPTNO ORDER BY SAL DESC) "부서별급여순위"
, RANK() OVER(ORDER BY SAL DESC) "전체급여순위" -- (내림차순으로 순위)
FROM EMP
ORDER BY DEPTNO;
--==>>
/*
7839 KING 10 5000 1 1
7782 CLARK 10 2450 2 6
7934 MILLER 10 1300 3 9
7902 FORD 20 3000 1 2
7788 SCOTT 20 3000 1 2
7566 JONES 20 2975 3 4
7876 ADAMS 20 1100 4 12
7369 SMITH 20 800 5 14
7698 BLAKE 30 2850 1 5
7499 ALLEN 30 1600 2 7
7844 TURNER 30 1500 3 8
7654 MARTIN 30 1250 4 10
7521 WARD 30 1250 4 10
7900 JAMES 30 950 6 13
*/
DENSE_RANK()
→ 서열을 반환하는 함수
: 앞에 1등이 둘이더라도 그다음은 3등이 아니라 2등임
SELECT EMPNO "사원번호", ENAME "사원명", DEPTNO "부서번호", SAL "급여"
, DENSE_RANK() OVER(PARTITION BY DEPTNO ORDER BY SAL DESC) "부서별급여순위"
, DENSE_RANK() OVER(ORDER BY SAL DESC) "전체급여순위" -- (내림차순으로 순위)
FROM EMP
ORDER BY DEPTNO;
--==>>
/*
7839 KING 10 5000 1 1
7782 CLARK 10 2450 2 5
7934 MILLER 10 1300 3 8
7902 FORD 20 3000 1 2
7788 SCOTT 20 3000 1 2
7566 JONES 20 2975 2 3
7876 ADAMS 20 1100 3 10
7369 SMITH 20 800 4 12
7698 BLAKE 30 2850 1 4
7499 ALLEN 30 1600 2 6
7844 TURNER 30 1500 3 7
7654 MARTIN 30 1250 4 9
7521 WARD 30 1250 4 9
7900 JAMES 30 950 5 11
*/
부족하거나 잘못된 내용이 있을 경우 댓글 달아주시면 감사하겠습니다.
이 글에 부족한 부분이 존재할 경우 추후에 수정될 수 있습니다.
https://www.notion.so/RANK-1-83e092cf990a4e62beb871976badbe43https://www.notion.so/RANK-1-83e092cf990a4e62beb871976badbe43
'SQL > Oracle' 카테고리의 다른 글
26. ROLLUP, GROUPING (0) | 2022.03.12 |
---|---|
25. 그룹 함수 (0) | 2022.03.12 |
23. VIEW (0) | 2022.03.12 |
22. CASE 구문(조건문, 분기문) (0) | 2022.03.12 |
21. 변환 함수 (0) | 2022.03.12 |