오랑우탄의 반란

LeetCode 리트코드 | 570. Managers with at Least 5 Direct Reports (MySQL) 본문

SQL/LeetCode

LeetCode 리트코드 | 570. Managers with at Least 5 Direct Reports (MySQL)

5&2 2024. 7. 8. 11:14
반응형

오늘도 오랑이는 문제를 풉니다. 

 

570. Managers with at Least 5 Direct Reports 


셀프조인을 사용해서 풀 수 있는 간단한 문제입니다.

SELECT E1.NAME
FROM EMPLOYEE E1 JOIN EMPLOYEE E2 ON E1.ID = E2.MANAGERID
GROUP BY E1.ID, E1.NAME
HAVING COUNT(E2.MANAGERID) >= 5;

 

하지만 주말 동안 뇌를 비운 오랑이는 순간 착각하고 멍청한 실수를 해버립니다.

HAVING COUNT(DISTINCT E2.MANAGERID) 로 작성해서 틀려버렸습니다.

공통 값에 대해 JOIN 되고 GROUP BY 로 묶였기 때문에 E2.MANAGERID 칼럼의 값들은 NULL 값 제외, 그리고 E1.ID 와 E1.NAME 기준으로 묶여서 고유의 값만 가졌을 것입니다. 그렇기 때문에 DISTINCT 를 쓰는 것은 1만 리턴해서 5보다 큰 값은 없는 것으로 출력될 것이고요. 

 

 

 

https://leetcode.com/problems/managers-with-at-least-5-direct-reports

 

 

 

오랑우탄이 영어를 하고 오랑이가 쿼리를 한 번에 짜는 기적을 이루는 그날까지~

반응형