You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从人事数据库查询管理3名及以上员工的主管姓名?

查询管理3名及以上员工的主管姓名

你的第二个SQL逻辑存在问题:按EMPLOYEE_NAME分组时,COUNT(BOSS_ID)统计的是当前员工作为下属时,其直属上级ID的出现次数,而非该员工作为主管时管理的下属总数,所以无法返回正确结果。

以下是两种可行的解决方案:

方案1:子查询关联原表

先通过子查询筛选出管理人数达标主管的BOSS_ID,再关联原表获取对应的姓名:

SELECT p.EMPLOYEE_NAME
FROM PERSONNEL p
WHERE p.EMPLOYEE_ID IN (
    SELECT BOSS_ID
    FROM PERSONNEL
    GROUP BY BOSS_ID
    HAVING COUNT(BOSS_ID) >= 3
)

方案2:自连接分组统计

通过自连接将主管和下属数据关联,再按主管的ID和姓名分组,统计下属数量:

SELECT p.EMPLOYEE_NAME
FROM PERSONNEL p
JOIN PERSONNEL sub ON p.EMPLOYEE_ID = sub.BOSS_ID
GROUP BY p.EMPLOYEE_ID, p.EMPLOYEE_NAME
HAVING COUNT(sub.EMPLOYEE_ID) >= 3

注:如果存在主管未在PERSONNEL表中(如最高层级管理者),需根据实际情况调整,但通常人事数据库中主管本身也是员工,上述方案可直接使用。

内容的提问来源于stack exchange,提问作者rrrr2222

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 01:15:52