题目:
Employee 表包含所有员工和他们的经理。每个员工都有一个 Id,并且还有一列是经理的 Id。
image给定 Employee 表,请编写一个SQL查询来查找至少有5名直接下属的经理。对于上表,您的SQL查询应该返回:
image注意: 没有人是自己的下属。
参考答案:
数据库版本:Server version: 8.0.20 MySQL Community Server - GPL
建表语句
create table dailytest_20200519
(
id int,
name varchar(20),
department varchar(20),
managerid int
);
数据准备
insert into dailytest_20200519 values (101,'John','A',null);
insert into dailytest_20200519 values (102,'Dan','A',101);
insert into dailytest_20200519 values (103,'James','A',101);
insert into dailytest_20200519 values (104,'Amy','A',101);
insert into dailytest_20200519 values (105,'Anne','A',101);
insert into dailytest_20200519 values (106,'Ron','B',101);
查询逻辑
select
A.name
from dailytest_20200519 A
inner join (
select
managerid
from dailytest_20200519
group by managerid
having count(1) >= 5) B
on A.id = B.managerid;
网友评论