https://solvesql.com/problems/mentor-mentee-list/
🔍 문제
회사에서 신규 입사자에게 멘토링을 진행할 멘토를 찾아야 한다.
멘티의 조건은 2021-12-31 기준으로 3개월 내 입사한 사원이여야 하고,
멘토의 조건은 2021-12-31 기준으로 2년 이상 근무했어야 한다.
또한 최대한 다양한 분야의 직원들이 서로 교류 할 수 있도록 서로 다른 부서에 속하는 직원끼리 멘토링을 매칭시켜야 한다.
🎯정답
select
mte.employee_id as "mentee_id",
mte.name as "mentee_name",
mto.employee_id as "mentor_id",
mto.name as "mentor_name"
from
-- cross join을 통해서 모든 경우의 수를 볼 수 있도록 한다.
employees mte cross join employees mto
where
mte.join_date between '2021-09-01' and '2021-12-31'
AND
mto.join_date < '2019-12-31'
AND
mte.department != mto.department
order by 1, 2
❓풀이
- 해당 문제의 핵심은 `cross join`을 사용해서 풀어야 한다. `cross join`을 사용했을 경우 직원 테이블을 두 번 사용해서 모든 직원 간 조합을 만들어 줄 수 있다.
- 이후 조건에 해당하는 직원들만 필터링 할 수 있도록 `where`절에서 필터링 해주면 된다.
'프로그래밍 언어 > 02. SQL' 카테고리의 다른 글
| [PostgreSQL] solvesql LV.3 서울숲 요일별 대기오염도 계산하기 (with.날짜에서 요일 출력하기) (0) | 2025.10.15 |
|---|---|
| [PostgreSQL] solvesql LV.3 온라인 쇼핑몰의 월 별 매출액 집계 (0) | 2025.10.13 |
| [PostgreSQL] solvesql LV.3 쇼핑몰의 일일 매출액과 ARPPU (0) | 2025.10.12 |
| [PostgreSQL] solvesql LV.3 배송 예정일 예측 성공과 실패 (0) | 2025.10.11 |
| [PostgreSQL] solvesql LV.3 할부는 몇 개월로 해드릴까요 (0) | 2025.10.10 |
