解题思路:
首先将原表(经理表manager)与自身(下属表emp)进行连接,连接条件为manager.id=emp.manager,之后按经理表中的id进行分组,统计每个经理的下属员工的个数,将统计的结果命名为表t1
(select manager.id as id,count(*) as num
from Employee as manager join Employee as emp
on manager.id=emp.managerId
group by manager.id) as t1
从t1中取出count>=5的经理id,将查询的结果命名为表t2
(select id from t1 where num >=5) as t2
找出Employee表中下属员工至少有5个的经理名称
select name from Employee
where id in (select id form t2)
SQL代码:
select name from Employee where id in (
select id from
(select manager.id as id,count(*) as num from Employee as manager join Employee as emp
on manager.id=emp.managerId
group by manager.id) as t1 where num >=5)