[SQL]Lv5. 예산이 가장 큰 프로젝트는?

2025. 1. 23. 15:58·코딩테스트/SQL

아래에 나오는 데이터는 서버에 없는 데이터 이기때문에 따로 CSV 파일을 만들어 LOCALHOST(MY SQL) 서버에 데이터를 넣어주어야한다.

방법:https://computerreport.tistory.com/16

 

CSV 파일을 이용해 데이터 가져오기(MY SQL)

해당 테이블을 드래그하여 복사하고  EXCEL 파일에 붙여넣은뒤 CSV 파일로 저장   Click 부분을 누르고 설정한 Username 과 MySQL 설치시 설정한 비밀번호 입력 -> 완료 Database 파일 우클릭 후 Create New

computerreport.tistory.com

 

문제:

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
Projects 테이블:
ProjectID
ProjectName
Budget
101
Alpha
10000
102
Beta
15000
103
Gamma
12000
104
Delta
8000
EmployeeProjects 테이블:
EmployeeID
ProjectID
1
101
2
101
3
102
4
103
5
104
6
102
6
103

 

주의 사항:

• 두 쿼리 모두 서브쿼리를 사용해주세요.
 
• 서브쿼리를 통해 특정 조건을 만족하는 데이터를 필터링하고, 그 결과를 최종 쿼리에 반영해야 합니다.
 
 

요구사항:

1.각 직원이 속한 부서에서 가장 높은 월급을 받는 직원들만 포함된 결과를 조회하는 SQL 쿼리를 작성해주세요.
 
출력 결과에는 직원의 이름, 부서, 그리고 월급이 포함되어야 합니다.
 
 
ex)
Name
Department
Salary
Alice
HR
5000
Frank
IT
7200
Eve
Sales
5500
 
1-1 rank 함수를 쓰는 방법
select a.Name,a.Department,a.Salary
from(select Name,
            Department,
            Salary,
            rank()over(partition by Department order by Salary desc) rank_num
            from Employees) a
where rank_num = 1
 
 
  • 부서별로 Salary 를 역순으로 정렬시켜 rank 의 num 값이 1인것만 추출한다.
 
 
2-2 where 과 join 을 이용한 방법
select Name,Department,Salary
from Employees 
where Salary in (select Max(Salary)
                 from Employees
                 group by Department)
 
  • 부서별로 가장 높은 Salary 를 추출한다 -> in 을 사용하여 Salary 에 포함된 이름과 부서와 월급을 출력한다.
 
 
2.직원이 참여한 프로젝트 중 예산이 10,000 이상인 프로젝트만을 조회하는 SQL 쿼리를 작성해주세요.
 
출력 결과에는 직원 이름, 프로젝트 이름, 그리고 프로젝트 예산이 포함되어야 합니다.

 

ex)

Name
ProjectName
Budget
Bob
Beta
15000
Charlie
Beta
15000
Frank
Beta
15000
David
Gamma
12000
Frank
Gamma
12000
select Name,ProjectName,Budget
from  Employees e join EmployeesProjects ep on e.EmployeeID=ep.EmployeeID
                  join Projects p on ep.ProjectID =p.projectID
where Budget>=10000
order by 3 desc
  • emloyees 의 테이블의 EmloyeeID 와 EmployeesProjects 의 EmloyeeID 가 동일한 것을 기준으로 join 실행 -> project 의 ProjectID 와 EmployeesProjects 의 ProjectID가 동일한 것을 기준으로 join 실행 -> Budget 이 10000원 이상인것만 출력

'코딩테스트 > SQL' 카테고리의 다른 글

[Mysql] 가격대 별 상품 개수 구하기  (0) 2025.04.07
[SQL]NULL 처리하기  (0) 2025.03.07
[SQL]Lv5. 가장 많이 팔린 품목은?  (0) 2025.01.23
[SQL]Lv4(2). 가장 높은 월급을 받는 직원은?  (0) 2025.01.21
[SQL]Lv4. 단골 고객님 찾기  (0) 2025.01.20
'코딩테스트/SQL' 카테고리의 다른 글
  • [Mysql] 가격대 별 상품 개수 구하기
  • [SQL]NULL 처리하기
  • [SQL]Lv5. 가장 많이 팔린 품목은?
  • [SQL]Lv4(2). 가장 높은 월급을 받는 직원은?
코딩로봇
코딩로봇
금융 IT 개발자
  • 코딩로봇
    쟈니의 일지
    코딩로봇
  • 전체
    오늘
    어제
    • 분류 전체보기 (138) N
      • JavaScript (8)
      • SQL (10)
      • 코딩테스트 (30)
        • Java (15)
        • SQL (13)
      • Java (10)
      • 프로젝트 (23) N
        • 트러블슈팅 (8) N
        • 프로젝트 회고 (13)
      • git,Github (2)
      • TIL (36)
      • Spring (17)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    스파르타 코딩 #부트캠프 #첫ot
    java #arraylist #list #배열
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코딩로봇
[SQL]Lv5. 예산이 가장 큰 프로젝트는?
상단으로

티스토리툴바