首页 > 数据库 >梧桐数据库之查找至少有3名直接下属的经理

梧桐数据库之查找至少有3名直接下属的经理

时间:2024-11-25 15:45:21浏览次数:9  
标签:梧桐 -- 经理 数据库 下属 查找 Employee managerId ID

一、背景说明

假设在一个公司内部有多个部门,每个部门由经理和员工组成。为了更好地管理和优化组织结构,公司希望找出那些直接管理至少3名员工的经理。这些经理通常承担更多的管理职责,并且对公司运营具有更大的影响力。通过分析这些经理及其下属,公司可以更好地理解组织结构,进行人力资源规划和优化。

二、表结构说明

我们假设有一个 Employee 表来存储所有员工的信息,包括他们的ID、姓名、所属部门以及他们的直接经理的ID。

-- 创建 Employee 表
CREATE TABLE Employee (
    id INT PRIMARY KEY,          -- 员工ID,主键
    name VARCHAR(100) NOT NULL,  -- 员工姓名
    department VARCHAR(100),     -- 所属部门
    managerId INT                -- 直接经理的ID
);

三、表数据插入

为了演示查询,我们将插入一些示例数据到 Employee 表中。

-- 插入示例数据
INSERT INTO Employee (id, name, department, managerId) VALUES
(1, '张三', '市场部', 4),
(2, '李四', '市场部', 4),
(3, '王五', '市场部', 4),
(4, '赵六', '市场部', NULL),
(5, '孙七', '技术部', 8),
(6, '周八', '技术部', 8),
(7, '吴九', '技术部', 8),
(8, '郑十', '技术部', NULL),
(9, '钱十一', '客服部', 12),
(10, '刘十二', '客服部', 12),
(11, '陈十三', '客服部', 12),
(12, '黄十四', '客服部', NULL),
(13, '杨十五', '财务部', 16),
(14, '朱十六', '财务部', 16),
(15, '秦十七', '财务部', 16),
(16, '尤十八', '财务部', NULL);

四、实现思路分解

  1. 统计每个经理的直接下属数量:首先,我们需要计算每个经理(即 managerId)的直接下属数量。
  2. 筛选出至少有3名直接下属的经理:然后,我们筛选出那些直接下属数量大于或等于3的经理。
  3. 获取这些经理的详细信息:最后,我们从 Employee 表中获取这些经理的详细信息。

五、SQL代码实现

-- 1. 统计每个经理的直接下属数量
WITH ManagerSubordinates AS (
    SELECT 
        managerId,  -- 经理的ID
        COUNT(id) AS subordinates_count  -- 直接下属的数量
    FROM 
        Employee
    WHERE 
        managerId IS NOT NULL  -- 只考虑有经理的员工
    GROUP BY 
        managerId  -- 按经理ID分组
)

-- 2. 筛选出至少有3名直接下属的经理
, ManagersWithThreeOrMoreSubordinates AS (
    SELECT 
        managerId  -- 经理的ID
    FROM 
        ManagerSubordinates
    WHERE 
        subordinates_count >= 3  -- 至少有3名直接下属
)

-- 3. 获取这些经理的详细信息
SELECT 
    e.id,  -- 经理的ID
    e.name,  -- 经理的姓名
    e.department  -- 经理所在的部门
FROM 
    Employee e
JOIN 
    ManagersWithThreeOrMoreSubordinates m  -- 与筛选出至少有3名直接下属的经理的子查询做连接查询
ON 
    e.id = m.managerId;  -- 匹配经理的ID

通过上述步骤,我们可以找到那些至少有3名直接下属的经理,并获取他们的详细信息。这有助于公司在人力资源规划和组织结构优化方面做出更好的决策。

执行结果如下:

idnamedepartment
4 赵六 市场部
8 郑十 技术部
12 黄十四 客服部
16 尤十八 财务部

标签:梧桐,--,经理,数据库,下属,查找,Employee,managerId,ID
From: https://www.cnblogs.com/chenxiaota/p/18567702

相关文章

  • 梧桐数据库之查询特定日期的套餐价格
    一、背景说明随着市场竞争的加剧和技术的发展,运营商需要频繁调整其服务套餐的价格以吸引客户或应对成本变化。假设某移动运营商决定对其提供的各种服务套餐(如流量包、语音通话包等)进行价格调整,并记录了每次价格调整的具体日期和新的价格。现在,管理层希望了解2024年9月1日当天所有......
  • SpringBoot永州优选网3uhfq 程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统内容:用户,商家,商品推荐,商家推荐,商品分类,优惠商品,优惠活动开题报告内容一、项目背景随着互联网技术的飞速发展,电子商务已成为推动地方经济转型升级的......
  • SpringBoot英语学习博客17ql1 程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统内容:用户,资源分类,资源信息,发布资源开题报告内容一、项目背景与意义随着全球化进程的加速,英语作为国际通用语言的重要性日益凸显。然而,传统的英语学习......
  • 梧桐数据库空间向量使用介绍
    在梧桐数据库(WuTongDB)中,空间向量和空间索引的高效使用对于处理空间数据至关重要。本文将通过一个详细的案例,介绍如何在梧桐数据库中使用空间向量,包括创建空间索引、插入样例数据以及执行具体的查询过程,并添加一些进阶操作来增加案例的复杂程度。1.创建空间索引与表首先,我们需要......
  • SpringBoot疫情服务系统0vjbh 程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统内容:用户,疫情信息,疫情通知,疫苗信息,预约接种,疫苗接种,接种统计,健康知识讲座开题报告内容一、项目背景与意义随着全球疫情的持续蔓延,及时、准确的疫情......
  • CodeIgniter如何手动将模型连接到数据库
    在CodeIgniter中,模型通常是自动与数据库连接的,因为模型类(CI_Model)已经内置了对数据库操作的支持。但是,如果你需要手动指定数据库连接或者进行一些特殊的数据库配置,你可以通过几种方式来实现。1.使用默认的数据库连接默认情况下,CodeIgniter的模型会使用在application/config/......
  • 7-441 9-5 查找(折半查找)
    有15个整数按升序提排列,现输入一个数n,请写程序,用折半查找法判断该数在序列中是否存在,若存在则指出是第几个。数组的初值如下:{1,4,6,9,13,16,19,28,40,100,123,222,236,679,899}输入格式:输入要查找的整数n。输出格式:如果找到输出:"找到了,在第...个。"如果没有找到输出:"......
  • 【面向对象的程序设计——接口与多态】类型转换,方法的查找,多态(一)
    文章目录类型转换类型转换的规则转型或向上转型隐式转换显示类型转换方法的查找实例方法的查找类方法查找多态(一)多态的概念多态的作用/目的绑定绑定的概念绑定的分类静态绑定动态绑定类型转换类型转换的规则基本类型之间的转换:就是将值从一种类型转变为另一种......
  • SpringBoot影视资讯管理系统7x0xg 程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统内容:用户,影片分类,最新影片,热门影片开题报告内容一、项目背景随着影视产业的快速发展,观众对影视资讯的需求日益增长。为了更好地满足用户对影视信息获取......
  • jmeter之操作数据库
    一、下载jdbc驱动,安装jdbc驱动2、将驱动存放在4个路径下(1)C:\ProgramFiles\Java\jre1.8.0_60\lib(2)第二个存放的包C:\ProgramFiles\Java\jre1.8.0_60\lib\ext(3)第三个存放的包(4)存放第四个包E:\dcs\two\jmeter(14)\apache-jmeter-3.3\lib\ext2、在测试计划中导入驱动3、......