
select ename, job, sal,
rank() over (order by sal desc) as 순위,
dense_rank() over (order by sal desc) as 순위2
from emp
where job in ('ANALYST', 'MANAGER');
select job, ename, sal, dense_rank() over (partition by job
order by sal desc) as 순위
from emp;
select dense_rank(2975) within group (order by sal desc) 순위
from emp;
💡 주로
over를 사용하고
위와 같이 괄호안에 어떤 값이 들어갔으면 그때within group을 사용
select dense_rank(28) within group (order by age desc) 순위
from emp21;
💡 언제 over를 쓰고 언제 within group을 사용하는가?
문법1:dense_rank() over ( order by sal desc )
문법2:dense_rank(숫자) within group ( order by sal desc )
select ename, sal, dense_rank() over (order by sal desc) 순위
from emp
where sal between 1000 and 3000;