
LeetCode - The Number of Employees Which Report to Each Employee
➔ 매니저의 ID와 이름, 그들에게 직접 보고하는 직원 수, 보고자의 평균 나이를 정수로 반올림해서 출력하라.
직원과 매니저가 공존한다. 즉, 직원이며 매니저일 수 있다.
그러므로 이 문제에선 셀프 조인을 이용한다.
셀프조인을 이용해 A를 매니저테이블로, B를 직원테이블로 사용한다.
➔ ON A.EMPLOYEE_ID = B.REPORTS_TO 로 하여 매니저에게 보고하는 직원들을 찾을 수 있다.
SELECT A.EMPLOYEE_ID, A.NAME, COUNT(1) AS REPORTS_COUNT, ROUND(AVG(B.AGE),0) AS AVERAGE_AGE
FROM EMPLOYEES A JOIN EMPLOYEES B
ON A.EMPLOYEE_ID = B.REPORTS_TO
GROUP BY A.EMPLOYEE_ID
ORDER BY A.EMPLOYEE_ID