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

Oracle SQL单表查询问题:统计经理下属人数结果不符

修正Oracle SQL查询以正确统计经理下属数量

问题分析

现有查询的核心错误在于关联条件逻辑错误:

JOIN xxaazl_empleados_t gerente ON emp.gerente = gerente.gerente

该语句将员工的gerente字段(指向经理的员工ID)与经理自身的gerente字段(经理的上级ID)做关联,导致匹配逻辑完全错误,从而得到了不符合预期的统计结果。

修正后的查询语句

SELECT
    gerente.nombre_empleado AS Manager_name,
    COUNT(emp.empleado_id) AS Total
FROM
    xxaazl_empleados_t emp
JOIN xxaazl_empleados_t gerente 
    ON emp.gerente = gerente.empleado_id  -- 修正关联逻辑:员工的经理ID对应经理的员工ID
WHERE
    emp.gerente IS NOT NULL
GROUP BY
    gerente.empleado_id, gerente.nombre_empleado  -- 增加经理ID分组,避免同名经理的统计混淆
ORDER BY
    Total DESC;

关键修正点

  1. 修正关联逻辑:将关联条件改为emp.gerente = gerente.empleado_id,确保员工记录正确关联到其直属经理的记录。
  2. 优化分组逻辑:GROUP BY中加入gerente.empleado_id,避免出现同名经理时,下属数量被错误合并统计。
  3. 更精准的统计字段:使用COUNT(emp.empleado_id)替代COUNT(emp.nombre_empleado),员工ID是唯一标识,即使存在姓名为空的情况也不影响统计准确性。

执行上述修正后的语句,即可得到期望的统计结果:

Manager_name   Total
1   Carlos           3
2   Juan             2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 19:37:06