1978. Employees Whose Manager Left the Company (20분 소요)
https://leetcode.com/problems/employees-whose-manager-left-the-company/description/
이 표에는 직원, 급여, 관리자 ID에 대한 정보가 포함되어 있습니다. 일부 직원은 관리자가 없습니다(manager_id는 null입니다).
급여가 3만 달러 미만이고 매니저 퇴사한 직원의 ID를 찾아보세요. 매니저가 퇴사하면 직원 테이블에서 해당 정보가 삭제되지만, 보고서에는 퇴사한 매니저의 manager_id가 여전히 설정되어 있습니다. employee_id에서 주문한 결과 테이블을 반환합니다.
** 번역기로 돌린거라 말이 안 맞을 수 있습니다.
[문제풀이]
문제의 테이블에서는 직원아이디, 이름, 매니저아이디, 급여로 나누어져있고 예시는 아래와 같았다.


처음에는 employee_id를 그룹핑해서 manager_id가 Null값이고, 급여가 30000미만이었을 때 내용을 작성 하였지만 오답이었다

다시 문제 풀이를 진행하면, 먼저 select 절에는 출력이 되어야 하는 employee_id를 입력하고
where절은 manager_id에서 employee_id가 없어야하고, 급여는 30000 미만이여야 하기 때문에 아래와 같이 입력하였다. employee_id에서 order by 결과 테이블을 반환해야 하므로 아래와 같이 정답이 처리가 되었다. (번역기에선 주문으로 되어 있었네;)
select employee_id
from Employees
where manager_id not in (select employee_id
from Employees)
and salary < 30000
order by employee_id;
추가로 다른 사람들이 답을 한 것 중에 self join 방법으로 처리를 한 내용도 있다. with도 있었는데 주말에 한 번 시도를 해봐야겠다.
select e.employee_id
from employees e
left join employees m on e.manager_id = m.employee_id
where e.salary < 30000 and m.employee_id is null and e.manager_id is not null
order by e.employee_id'스터디 > 학습일지' 카테고리의 다른 글
| [SQL] 20250619- mySQL 문제 풀이 미션 (1) (0) | 2025.06.19 |
|---|---|
| [SQL] 250618 코드카타 문제풀이 Leetcode 1204 (0) | 2025.06.18 |
| [SQL] 20250617- mySQL 문제 풀이 미션 (1) (0) | 2025.06.18 |
| [SQL] 20250616- mySQL 문제 풀이 미션 (2) (1) | 2025.06.16 |
| [SQL] 20250616- mySQL 문제 풀이 미션 (1) (3) | 2025.06.16 |