-
Notifications
You must be signed in to change notification settings - Fork 22
Expand file tree
/
Copy pathAtleast5DirectReports.sql
More file actions
65 lines (55 loc) · 1.76 KB
/
Atleast5DirectReports.sql
File metadata and controls
65 lines (55 loc) · 1.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
-- Table: Employee
-- +-------------+---------+
-- | Column Name | Type |
-- +-------------+---------+
-- | id | int |
-- | name | varchar |
-- | department | varchar |
-- | managerId | int |
-- +-------------+---------+
-- id is the primary key (column with unique values) for this table.
-- Each row of this table indicates the name of an employee, their department, and the id of their manager.
-- If managerId is null, then the employee does not have a manager.
-- No employee will be the manager of themself.
-- Write a solution to find managers with at least five direct reports.
-- Return the result table in any order.
-- The result format is in the following example.
-- Example 1:
-- 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 |
-- +------+
-- Solution
-- Write your PostgreSQL query statement below
select EmployeeName as name from
(
select EmployeeId,
EmployeeName,
count(Employee_managerId) as count_Employee_managerId
from (
select Employee.id as EmployeeId,
Employee.name as EmployeeName,
emp.managerId as Employee_managerId
from Employee
join Employee emp
on (Employee.id = emp.managerId)
where emp.managerId is not null
)
group by EmployeeId,
EmployeeName
)
where count_Employee_managerId >= 5