반응형
문제
멘티가 될 신규 입사자들은 ‘2021년 12월 31일’을 기준으로 3개월 이내 입사한 인원 전체이며, 멘토는 ‘2021년 12월 31일’을 기준으로 재직한지 2년 이상이 된 직원들만 배정하려고 합니다. 또한 최대한 다양한 분야의 직원들이 서로 교류 할 수 있도록 서로 다른 부서에 속하는 직원끼리 멘토링을 진행하려고 합니다.
위 조건을 모두 만족하는 멘티-멘토 짝꿍 리스트를 계산하는 쿼리를 작성해주세요. 쿼리 결과에는 매칭 가능한 멘토가 없는 경우도 모두 포함되어야 합니다. 추가로 쿼리 결과는 멘티 ID를 기준으로 오름차순 정렬되어 있어야 하고, 멘티 1명에 대해 배정 가능한 멘토가 여러 명인 경우 멘토 ID로 오름차순 정렬되어 있어야 합니다.
문제 요약
입사한지 3개월 안된 신입과 입사한지 2년 이상 된 선배들을 부서가 겹치지 않게 짝지어라
풀이
SELECT TE.employee_id AS mentee_id
, TE.name AS mentee_name
, TOR.employee_id AS mentor_id
, TOR.name AS mentor_name
FROM
(SELECT employee_id, name, join_date, department
FROM employees
WHERE STRFTIME('%Y%m%d', join_date) BETWEEN '20210901' AND '20211231') TE
LEFT JOIN employees TOR
ON TE.department != TOR.department
WHERE STRFTIME('%Y%m%d',TOR.join_date) <= '20191231' ;
배운 점
Subquery 사용하기
서로 다른 부서끼리 묶기 → JOIN 조건에 != 사용하기
SELECT 필요한 칼럼들
FROM (입사한 지 3개월 이내 신입사원 추출하는 서브 쿼리) A
LEFT JOIN B
ON A.중복칼럼 != B.중복칼럼
WHERE B 조건
반응형