2009. 3. 13. 20:41 Program.../Oracle
Oracle rank 함수
---- rank 함수
select deptno "부서번호", ename "성명", sal "급여",
rank() over(order by sal desc) "등수", -- 해당 column의 등수를 준다.
dense_rank() over(order by sal desc) "서열" -- 서열을 나타내 준다.
from emp;
select deptno "부서번호", ename "성명", sal "급여",
rank() over(partition by deptno order by sal desc) "부서등수",
-- partition by 는 해당 컬럼별 순위를 나타낸다.
rank() over(order by sal desc) "등수" -- 해당 column의 등수를 준다.
from emp;
select deptno "부서번호", ename "이름", sal "급여",
rank() over(partition by deptno order by sal desc) "부서등수",
rank() over(order by sal desc) "전체등수",
dense_rank() over(partition by job order by coalesce(sal*12+comm, sal*12, 0) desc) "직종별등수",
dense_rank() over(order by coalesce(sal*12+comm, sal*12, 0) desc) "전체서열"
from emp
order by 1;
select deptno "부서번호", ename "성명",
coalesce(sal*12+comm, sal*12, 0) "연봉",
rank() over(order by coalesce(sal*12+comm, sal*12, 0) desc) "등수"
from emp;
select deptno "부서번호", ename "성명", sal "급여",
rank() over(order by sal desc) "등수" -- 해당 column의 등수를 준다.
from emp
where rank() over(order by sal desc) <= 5; -- rank 함수는 where절에 사용이 안된다.
'Program... > Oracle' 카테고리의 다른 글
Oracle Group by 절 (0) | 2009.03.14 |
---|---|
Oracle 단일행 함수와 그룹함수의 차이점 (0) | 2009.03.14 |
Oracle 변환형 함수 (0) | 2009.03.13 |
Oracle 날짜형 함수 (0) | 2009.03.13 |
Oracle 숫자형 함수 - log, sign, chr (0) | 2009.03.13 |