02/22 SQL 문제풀이 - 1731. The Number of Employees Which Report to Each Employee (Leetcode)

Data Architect / Engineer·2024년 2월 22일
1

1일_1SQL

목록 보기
37/63
post-thumbnail

문제

  • LeetCode SQL 문제
  • 1731. The Number of Employees Which Report to Each Employee / Easy
  • 문제 내용 : [링크]


내가 작성한 Query

select m.employee_id, m.name, count(*) as reports_count, round(avg(e.age), 0) as average_age
from employees e
    join employees m on e.reports_to = m.employee_id
group by m.employee_id, m.name
order by m.employee_id
  • Employees 테이블을 SELF JOIN 해서 'reports_to'를 1개 이상 받는 사원의 정보를 출력하는 방식으로 접근.

  • reports_toemployee_id가 같은 값을 기준으로 JOIN 해 준다. 이렇게 되면 report_to를 1개 이상 받는 사원의 정보만 출력할 수 있다. (INNER JOIN 이므로)

  • 이후 employee_id, name 별로 GROUP BY를 통해 그룹핑 해 준다.

  • count(*) as reports_count를 통해 보고 받는 count 수를 구한다.

  • round(avg(age), 0) as average_age를 통해 보고를 하는 사람들의 평균 age를 구할 수 있다.

  • 🌟 SELF JOIN 을 사용한 전형적인 문제. (사원의 직속 상사 구하기, 쇼핑몰 회원의 추천인 정보 찾기 등..)

profile
질문은 계속돼 아오에

0개의 댓글