Contents
내가 작성한 쿼리
이 문제에 대해 우리는 관리자를 최소 한 명의 다른 직원이 보고하는 직원으로 간주할 것입니다. ID와 모든 관리자의 이름, 직접 보고하는 직원 수, 보고서의 평균 연령을 가장 가까운 정수로 반올림하여 보고하는 솔루션을 작성하세요. employee_id를 기준으로 정렬한 결과 테이블을 반환합니다.
내가 작성한 쿼리
MySQL
SELECT
e1.employee_id,
e1.name,
COUNT(*) AS reports_count,
ROUND(AVG(e2.age)) AS average_age
FROM Employees e1
JOIN Employees e2
ON e1.employee_id = e2.reports_to
GROUP BY e1.employee_id
ORDER BY e1.employee_id;
Oracle
SELECT
e1.employee_id,
e1.name,
COUNT(*) AS reports_count,
ROUND(AVG(e2.age)) AS average_age
FROM Employees e1
JOIN Employees e2
ON e1.employee_id = e2.reports_to
GROUP BY e1.employee_id, e1.name
ORDER BY e1.employee_id;
차이점
항목 | MySQL | Oracle |
GROUP BY 대상 | e1.employee_id 만 있어도 OK | SELECT 에 있는 모든 비집계 컬럼 필요 (e1.employee_id , e1.name ) |
Share article