본문 바로가기

공부 자료/SQL

[27일차] FROM - 서브쿼리 : 원하는 데이터 추출하기

- rank함수는 rank( ) over(order by 컬럼)의 형식으로 사용되는데, 컬럼 값의 순서대로 순위를 매겨주는 컬럼을 만든다.

- dense_rank함수는 공동 순위가 있을 경우 그 다음 순위를 건너뛰고 차례대로 순위를 매기는 rank함수와 달리 공동 순위 이후 그대로 순위를 산출한다.

- from (쿼리)는 쿼리를 하나의 테이블로 간주하고 컬럼을 뽑아낸다.

select b.직원이름 as 우수사원명, a.*
from employees a
left outer join (
select a.부서번호, a.직원이름, a.순위
from(
select last_name||' '||first_name as 직원이름
, salary 급여
, department_id as 부서번호
, dense_rank() over(partition by department_id order by salary desc) as 순위
from employees
) a
where a.순위 = 1
) b
on a.department_id = b.부서번호;