[Leetcode, PostgreSQL] 570. Managers with at Least 5 Direct Reports
포스트
취소

[Leetcode, PostgreSQL] 570. Managers with at Least 5 Direct Reports

문제

  • Write a solution to find managers with at least five direct reports.

  • Example:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
      Input: 
      Employee table:
      +-----+-------+------------+-----------+
      | id  | name  | department | managerId |
      +-----+-------+------------+-----------+
      | 101 | John  | A          | null      |
      | 102 | Dan   | A          | 101       |
      | 103 | James | A          | 101       |
      | 104 | Amy   | A          | 101       |
      | 105 | Anne  | A          | 101       |
      | 106 | Ron   | B          | 101       |
      +-----+-------+------------+-----------+
        
      Output: 
      +------+
      | name |
      +------+
      | John |
      +------+
    

코드

My solution

1
2
3
4
5
6
7
8
9
10
11
WITH TBL_A AS (
    SELECT A.MANAGERID, COUNT(A.MANAGERID) AS CNT
    FROM EMPLOYEE A
        LEFT JOIN EMPLOYEE B ON A.MANAGERID = B.ID
    WHERE A.MANAGERID IS NOT NULL
    GROUP BY A.MANAGERID
)
SELECT NAME
FROM EMPLOYEE
WHERE ID IN (SELECT MANAGERID FROM TBL_A WHERE CNT >= 5)
;

ChatGPT 3.5

1
2
3
4
5
6
7
8
9
SELECT name
FROM Employee
WHERE id IN (
    SELECT managerId
    FROM Employee
    GROUP BY managerId
    HAVING COUNT(id) >= 5
)
;

Bard

1
2
3
4
5
6
7
8
9
10
WITH mgrs AS (
  SELECT d.managerId
  FROM Employee d
  GROUP BY d.managerId
  HAVING COUNT(*) >= 5
)
SELECT e.name
FROM Employee e
WHERE e.id IN (SELECT managerId FROM mgrs)
;
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.

[Leetcode, PostgreSQL] 550. Game Play Analysis IV

[Leetcode, PostgreSQL] 577. Employee Bonus