반응형
순위를 구하게 해주는 함수입니다.
RANK() OVER() : 동일 순위인 경우 1,1,3 형식으로 출력
ROW_NUMBER() OVER() 동일순위인 경우 1,2,3 형식으로 출력
DENSE_RANK() OVER() 동일 순위인 경우 1,1,2 형식으로 출력
사용법
SELECT 문에서 사용할 수 있음
OVER() 내에서 partition by 절과 order by 절 사용 가능
예제
EMP 테이블에서 부서 번호(DEPTNO)별로 부서 내에서 급여가 가장 많은 순서대로 보여주는 쿼리를 작성하세요
SQL> select empno,deptno,sal,rank() over (partition by deptno order by sal desc) as seq
from emp;
EMPNO DEP SAL SEQ
----- --- --------- -----------
7839 10 5000 1
7782 10 2450 2
7934 10 1300 3
7788 20 3000 1
7902 20 3000 1
7566 20 2975 3
7876 20 1100 4
7369 20 800 5
7698 30 2850 1
7499 30 1600 2
7844 30 1500 3
7654 30 1250 4
7521 30 1250 4
7900 30 950 6
14 rows selected.
반응형
'SQL(쿼리)' 카테고리의 다른 글
컬럼 중 NULL이 포함되어 있을 때 SUM의 결과값은? (0) | 2022.03.10 |
---|---|
Decode 함수와 형 변환 (0) | 2021.12.29 |
실행계획 확인하기,실제 실행계획 확인하기 (0) | 2020.12.22 |
트리거 생성(IF문 활용해서 Not Null인 컬럼만 트리거 작동) (0) | 2020.12.07 |
SCOTT스키마예제를 통해 계층구조 쿼리 정리 (0) | 2020.11.25 |
댓글