Lv4. 가장 높은 월급을 받는 직원은?
SQL의 기본적인 쿼리문을 작성할 수 있다면, 달리기반 과제에 도전해보아요.
단순 문법을 사용하는 것 뿐 아니라 내가 정말 원하는 데이터를 출력하기 위한 한 걸음이 될 거예요!
과제를 수행하고나 나면 할 수 있어요!
•
JOIN, 서브쿼리, GROUP BY, HAVING 등 SQL 기능을 조합하여 사용할 수 있다.
•
GROUP BY와 HAVING을 사용해 특정 조건을 만족하는 집계 결과를 필터링할 수 있다.
•
여러 테이블을 연결하고 필요한 데이터를 추출할 수 있는 능력을 기를 수 있다.
•
쿼리의 성능을 고려해 필요한 데이터를 가장 효율적으로 얻을 수 있는 방법을 찾는 능력을 기를 수 있다.
Notification: 과제 시작 전 확인할 내용!
과제 시작 전 다음 내용을 셀프 체크해보세요.
SELECT, FROM, WHERE, JOIN 등의 기본적인 SQL 문법과 구조에 대한 이해
COUNT, SUM, AVG, MAX, MIN 등 집계 함수의 사용법
서브쿼리(내부 쿼리)의 개념과 사용법, 그리고 이를 메인 쿼리와 결합하는 방법
HAVING 절을 사용해 그룹화된 데이터에서 특정 조건을 만족하는 결과만 필터링하는 방법
본격적으로 시작해 볼까요?
Employees 테이블:
EmployeeID | Name | Department | Salary | ManagerID |
1 | Alice | HR | 70000 | NULL |
2 | Bob | IT | 90000 | 1 |
3 | Charlie | IT | 80000 | 2 |
4 | David | IT | 85000 | 2 |
5 | Eve | HR | 75000 | 1 |
6 | Frank | Finance | 95000 | NULL |
7 | Grace | Finance | 80000 | 6 |
8 | Heidi | IT | 95000 | 2 |
요구사항:
1.
각 직원의 이름, 부서, 월급, 그리고 그 직원이 속한 부서에서 가장 높은 월급을 받고 있는 직원의 이름과 월급을 조회하는 SQL 쿼리를 작성해주세요.
a.
기대결과
Name | Department | Salary | Top_Earner | Top_Salary |
Alice | HR | 70000 | Eve | 75000 |
Bob | IT | 90000 | Heidi | 95000 |
Charlie | IT | 80000 | Heidi | 95000 |
David | IT | 85000 | Heidi | 95000 |
Eve | HR | 75000 | Eve | 75000 |
Frank | Finance | 95000 | Frank | 95000 |
Grace | Finance | 80000 | Frank | 95000 |
Heidi | IT | 95000 | Heidi | 95000 |
2.
부서별로 평균 월급이 가장 높은 부서의 이름과 해당 부서의 평균 월급을 조회하는 SQL 쿼리를 작성해주세요.
a.
기대결과
Department | Avg_Salary |
IT | 87500 |
제약사항:
•
두 쿼리 모두 서브쿼리, JOIN, GROUP BY, HAVING 등의 기능을 활용해주세요.
완료하셨다면?
정답 확인하기
•
정답과 다르다면?
◦
아직 어려운 것이 당연합니다. 슬랙 내 ‘질문방’에 질문하여 어떤 점이 어려운지 공유해 보세요! 함께 풀어나가면 훨씬 쉬울 거에요.