leecode 数据库:570. 至少有5名直接下属的经理

news/2024/4/25 18:33:20

导入数据:


Create table If Not Exists Employee (id int, name varchar(255), department varchar(255), managerId int);
Truncate table Employee;
insert into Employee (id, name, department, managerId) values ('101', 'John', 'A', 'None');
insert into Employee (id, name, department, managerId) values ('102', 'Dan', 'A', '101');
insert into Employee (id, name, department, managerId) values ('103', 'James', 'A', '101');
insert into Employee (id, name, department, managerId) values ('104', 'Amy', 'A', '101');
insert into Employee (id, name, department, managerId) values ('105', 'Anne', 'A', '101');
insert into Employee (id, name, department, managerId) values ('106', 'Ron', 'B', '101');

表: Employee

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| id          | int     |
| name        | varchar |
| department  | varchar |
| managerId   | int     |
+-------------+---------+
Id是该表的主键列。
该表的每一行都表示雇员的名字、他们的部门和他们的经理的id。
如果managerId为空,则该员工没有经理。
没有员工会成为自己的管理者。

 

编写一个SQL查询,查询至少有5名直接下属的经理 

以 任意顺序 返回结果表。

查询结果格式如下所示。

示例 1:

输入: 
Employee 表:
+-----+-------+------------+-----------+
| id  | name  | department | managerId |
+-----+-------+------------+-----------+
| 101 | John  | A          | None      |
| 102 | Dan   | A          | 101       |
| 103 | James | A          | 101       |
| 104 | Amy   | A          | 101       |
| 105 | Anne  | A          | 101       |
| 106 | Ron   | B          | 101       |
+-----+-------+------------+-----------+
输出: 
+------+
| name |
+------+
| John |
+------+

方法:使用临时表进行连接
算法:

首先,我们只需使用此 ManagerId 列就可以获取拥有 5 个以上直接下属的经理的 ID。
然后,我们可以通过将该表与 Employee 表连接来获取该经理的名称。

代码:

SELECTName
FROMEmployee AS t1 JOIN(SELECTManagerIdFROMEmployeeGROUP BY ManagerIdHAVING COUNT(ManagerId) >= 5) AS t2ON t1.Id = t2.ManagerId
;

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/managers-with-at-least-5-direct-reports
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


https://www.xjx100.cn/news/306114.html

相关文章

Python自然语言处理:NLTK入门指南

Python自然语言处理:NLTK入门指南 一、Python自然语言处理简介1. 什么是自然语言处理(NLP)2. Python在NLP中的应用3. 为什么选择使用Python进行NLP 二、NLTK介绍1. NLTK是什么2. NLTK的历史和现状3. NLTK的安装和配置4. NLTK的基本功能分词&a…

Aztec network即将集成Compound Defi项目

1. 引言 日前,Compound宣布将在2022年2季度上线Aztec network的zk.money中。 Aztec Network定位为以太坊的L2隐私扩容方案,号称为:Layer 2 for the internet of money。 通过名为DeFi Aggregation的process,Aztec可支持cheap pr…

【本地模式】第一个Mapreduce程序-wordcount

【本地模式】:也就是在windows环境下通过hadoop-client相关jar包进行开发的,我们只需要通过本地自己写好MapReduce程序即可在本地运行。 一个Maprduce程序主要包括三部分:Mapper类、Reducer类、执行类。 map阶段:将每一行单词提…

网工视角看基础网络,原来这么与众不同

大家好,我是老杨。 前两天去华为生态大会刚回来,颇为感慨。 感慨万物互联的世界越来越大,网络渗透度也越来越极致化。 网络很大,非常大,但在网工眼里,网络复杂又美妙,有着外行人难以理解的魅…

基于springboot+vue的校园任务订单配送管理系统

随着我国教育制度的改革的发展,各大高校的学生数量也在不断的增加。当前大学生的生活和消费习惯等导致他们更喜欢通过网络来获取自己想要的商品和服务,这也是导致当前校园配送盛行的主要原因。为了能够让更多的学生享受到校园配送的服务,我们…

数据更新了,但视图并没有更新

👉vue中数据改变,视图不更新的原因以及解决方法(强制更新视图)_在使用vue开发中如果数据发生变化而视图没有更新的原因是什么怎么解决_小太阳...的博客-CSDN博客 目录 1.某些方法操作数组 2.对象属性的添加或删除 a.动态添加一…

单词拼写检查textblob模块spellcheck方法

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 单词拼写检查 textblob模块 spellcheck方法 [太阳]选择题 关于python代码说法错误的一项是: from textblob import Word myWordsuccessfulee print("【显示】myWord …

【K8s】常用的Pod控制器

文章目录 一、认识Pod控制器1、控制器介绍2、控制器种类 二、ReplicaSet(RS)1、RS的作用与资源清单2、创建RS3、pod扩缩容4、镜像升级5、删除RS 三、Deployment(Deploy)1、作用与资源清单2、创建deploy3、扩缩容4、镜像更新5、版本…