
문제
https://leetcode.com/problems/managers-with-at-least-5-direct-reports/description/
문제 설명
- 직속 부하가 5명 이상인 매니저의 이름을 출력
정답 코드
SELECT name
FROM employee
WHERE id IN (SELECT managerId
FROM employee
GROUP BY managerID
HAVING count(managerID) >= 5)
개선된 코드
SELECT name
FROM employee
WHERE id IN (
SELECT managerId
FROM employee
WHERE managerId IS NOT NULL
GROUP BY managerId
HAVING COUNT(*) >= 5
)
- WHERE managerId IS NOT NULL 추가
- NULL 값이 있는 경우 불필요하게 그룹화되므로 제외해야 정확한 결과를 얻을 수 있음
- COUNT(*) 사용 권장
- COUNT(managerId) 대신 COUNT(*)를 쓰면 널 값 여부에 관계없이 모든 행을 정확히 셈
'코딩 테스트 연습 > [프로그래머스][리트코드] MySQL' 카테고리의 다른 글
| 1934. Confirmation Rate (0) | 2025.10.13 |
|---|---|
| -- 9월 프로젝트 집중 기간 -- (0) | 2025.08.31 |
| 1280. Students and Examinations (2) | 2025.08.28 |
| 577. Employee Bonus (0) | 2025.08.26 |
| 1661. Average Time of Process per Machine ⭐️ (3) | 2025.08.25 |