美文网首页
SQL每日一题(2020-05-19)

SQL每日一题(2020-05-19)

作者: 扎西的德勒 | 来源:发表于2020-06-02 21:08 被阅读0次

    题目:

    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;
    

    附:
    题目来源:https://mp.weixin.qq.com/s/e0DhRtQJ0F9sjfZhW9KaIQ

    相关文章

      网友评论

          本文标题:SQL每日一题(2020-05-19)

          本文链接:https://www.haomeiwen.com/subject/zowpzhtx.html