Positive-Influence-Data

[SQL] 멘토링 짝꿍 리스트 본문

SQL

[SQL] 멘토링 짝꿍 리스트

DS쟁이 2022. 11. 23. 21:00

❗ 본 포스팅은 Solvesql의  연습문제를 활용합니다. 다양한 SQL 문제를 풀어보고 싶다면 Solvesql를 방문하세요.

 

아래의 문제는 멘토링 짝꿍 리스트 문제이다.

 

 

문제를 해석하보자.

  1. 멘티(신규입사자) 는 2021-12-31일로부터 3개월 이내에 입사자 즉, 2021-09-31이후로 입사한 사람을 찾으면 된다.
  2. 멘토는 입사한지 2년이상되는 직원이니까 2019년 12월 31일 이전에 입사한 사람을 찾으면 된다.
  3. 조건은 서로다른분야에 속한 직원끼리 멘토멘티를 엮어준다.
  4. 멘티기준으로 매칭이 없어도 출력해야한다,(left join)
  5. 멘티ID를 기준으로 오름차순, 동 순위일때는 멘토 ID기준으로 오름차순정렬

이런식으로 문제를 풀면 될 듯하다. 여기에서 조인의 개념이 들어가므로 SQL의 조인에 대해 모르겠으면 공부하고 다시 이 글을 보면 되겠다.

 

- 테이블의 정의가 위처럼 되어있다. 다행히 입사일이 DATE로 되어있어서 따로 처리할 부분은 없어보인다.

 

 

필자가 쓴 코드를 살펴보자.

select mti.employee_id as mentee_id, 
      mti.name as mentee_name, 
      mto.employee_id as mentor_id,
      mto.name as mentor_name
from (select *
  from employees
  where join_date>='2021-09-31') as mti left join 
  (select *
  from employees
  where join_date<='2019-12-31') as mto
  on (mti.department != mto.department)
  
order by mentee_id, mentor_id;

 

** 멘티 테이블을 하나 만들고 멘토 테이블을 만들어서 서로 JOIN하는 방식으로 진행했다.

문제에서 제시하는 조건만 잘따라주면 무리없이 풀 수 있을것 같다.

Comments