
문제
https://leetcode.com/problems/project-employees-i/description/
문제 설명
- 각 project_id별로 그 프로젝트에 참여한 직원들의 평균 경력(experience_years)을 계산해서,
소수점 둘째 자리까지 반올림(ROUND) 한 값을 구하기
정답 코드
SELECT p.project_id,
ROUND(SUM(e.experience_years)/COUNT(p.project_id),2) AS average_years
FROM project p LEFT JOIN employee e ON p.employee_id = e.employee_id
GROUP BY p.project_id
개선점
- SUM()/COUNT()로도 가능하지만 → AVG(e.experience_years)로 계산 가능
- 이 문제에서는 모든 프로젝트에 직원이 존재하므로 LEFT JOIN 대신 JOIN(= INNER JOIN)이 논리적으로 더 적합
→ 필요한 데이터만 정확히 매칭 가능 (불필요하게 NULL 값 포함할 가능성 없음)
개선 코드
SELECT p.project_id,
ROUND(AVG(e.experience_years),2) AS average_years
FROM project p JOIN employee e ON p.employee_id = e.employee_id
GROUP BY p.project_id'코딩 테스트 연습 > [프로그래머스][리트코드] MySQL' 카테고리의 다른 글
| 1251. Average Selling Price (0) | 2025.10.16 |
|---|---|
| 620. Not Boring Movies (0) | 2025.10.14 |
| 1934. Confirmation Rate (0) | 2025.10.13 |
| -- 9월 프로젝트 집중 기간 -- (0) | 2025.08.31 |
| 570. Managers with at Least 5 Direct Reports (4) | 2025.08.29 |