순위함수란? 특정 그룹에 따라 순위를 매기는 기능
Over() 옵션
1. Partition by : Over(Partition By Deptno Order By Sal Desc)
Deptno별로 정렬하고 Sal를 Desc로 정렬한후 Deptno별로 순위를 매긴다.
2. Order by
3. Nulls First
4. Nulls Last
Rank() - 중복순위 허용
ex)
Select
Empno,
Sal,
rank() over(Order by sal asc) as sal_rank
from emp;
ex)
Select
Empno,
Sal,
rank() over(Order by sal desc) as sal_rank
from emp;
Select
Empno,
Ename,
Job,
comm,
Rank() Over(Order By Comm Desc nulls last) As Comm_Rank
from emp;
Dense_Rank - 중복순위를 허용하지 않는다.
Select
Empno,
Sal,
dense_rank() over(order by sal desc) as sal_rank
from emp;
Select
Empno,
Sal,
dense_rank() over(order by sal asc) as sal_rank
from emp;
ROW_NUMBER() - 조건을 만족하는 모든행의 번호를 제공
Select
sal,
row_number() over(order By sal desc) as sal_Rank2
from emp;
그룹별로 순서를 매긴다.
( 그룹핑이 아니라 그룹별로 정렬 표시한후 특정 컬럼을 베이스로 순서를 매긴다.)
Select
Deptno,
Ename,
Row_Number() Over(Partition By Deptno Order By Sal Desc) Sal
From Emp;
'나는 엔지니어 > ORACLE' 카테고리의 다른 글
LOCK 과 UNLOCK에 관해서 (0) | 2012.06.20 |
---|---|
쓰레기 테이블 확인 및 지우기 (0) | 2012.06.19 |
ubuntu oracle11g Install files (0) | 2012.06.18 |
트랜잭션!! (0) | 2012.06.18 |
롤백 / 커밋 (0) | 2012.06.18 |