본문 바로가기

SQL

SQL 실전! 실제 DB에서 연습해요(5) - Lv5. 예산이 가장 큰 프로젝트는?

Employees

EmployeeID Name Department Salary
1 Alice HR 5000
2 Bob IT 7000
3 Charlie IT 6000
4 David HR 4500
5 Eve Sales 5500
6 Frank IT 7200

 

EmployeeProjects

EmployeeID ProjectID
1 101
2 101
3 102
4 103
5 104
6 102
6 103

 

Projects

ProjectID ProjectName Budget
101 Alpha 10000
102 Beta 15000
103 Gamma 12000
104 Delta 8000

 

1. 각 직원이 속한 부서에서 가장 높은 월급을 받는 직원들만 포함된 결과를 조회하는 SQL 쿼리를 작성해주세요.

select Name, Department, Salary
from 
(
SELECT Department,
	Name,
	Salary, 
	rank() over(partition by Department order by Salary desc) rn
from Employees e
) a
where rn = 1

 

2. 직원이 참여한 프로젝트 중 예산이 10,000 이상인 프로젝트만을 조회하는 SQL 쿼리를 작성해주세요.

select  e.Name, a.ProjectName, a.Budget
from Employees e
	left join
	(
	select ep.EmployeeID, p.ProjectName, p.Budget 
	from EmployeeProjects ep
	left join Projects p on ep.ProjectID = p.ProjectID
	) a on e.EmployeeID = a.EmployeeID
where a.Budget >= 10000