[LeetCode] SQL 50 / MySQL / 570. Managers with at Least 5 Direct Reports

2024. 1. 6. 18:10Coding/LeetCode-SQL

문제 링크

https://leetcode.com/problems/managers-with-at-least-5-direct-reports/description/?envType=study-plan-v2&envId=top-sql-50

 

Managers with at Least 5 Direct Reports - LeetCode

Can you solve this real interview question? Managers with at Least 5 Direct Reports - Table: Employee +-------------+---------+ | Column Name | Type | +-------------+---------+ | id | int | | name | varchar | | department | varchar | | managerId | int | +-

leetcode.com

 

문제

 

코드

# Write your MySQL query statement below
SELECT A.name 
FROM Employee A JOIN (
    SELECT managerId
    FROM Employee
    GROUP BY managerId
    HAVING count(managerId) >= 5
) AS B
ON A.id = B.managerId;

 

1. 서브쿼리와 JOIN하여 해결하였다. 

우선 managerID가 5번 이상 나오는 managerID 칼럼이 조회되도록 하는 서브 쿼리를 하나 만들어 준다.

그리고 그 서브쿼리랑 기존의 Employee 테이블과 조인을 해주는데, 이때 Employee 테이블의 id 칼럼과 managerId 칼럼을 JOIN 시켜준다. (첫 번째 줄의 조건에서 최소한 5건의 직접적인 보고를 가진 매니저를 뽑으라고 했기 때문이다.)