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

SQL COUNT函数统计马德里地区部门员工数的实现问题

统计马德里各部门员工总数的SQL问题

我尝试统计位于马德里的各部门员工总数,编写了如下SQL代码但遇到瓶颈无法推进,我仅学习SQL两周,对此十分困扰:

SELECT nomDepar, ciudadSede, count(idempleado) as "Numero de Empleados"
from departamentos d, sedes s, empleados
where d.idSede = s.idSede
and s.ciudadSede in ('Madrid')
group by nomdepar, ciudadsede

问题分析与修正

你的代码核心问题是没有关联departamentos(部门表)和empleados(员工表),这会导致两张表产生笛卡尔积,统计结果完全错误。另外,建议使用显式JOIN语法替代旧的逗号分隔表的写法,逻辑更清晰易读。

修正后的代码(假设部门表和员工表通过idDepar关联,可根据实际表结构调整关联字段):

SELECT 
    d.nomDepar, 
    s.ciudadSede, 
    COUNT(e.idempleado) AS "Numero de Empleados"
FROM departamentos d
JOIN sedes s ON d.idSede = s.idSede
JOIN empleados e ON d.idDepar = e.idDepar -- 新增部门与员工的关联条件
WHERE s.ciudadSede = 'Madrid' -- 单个值用=比IN更高效
GROUP BY d.nomDepar, s.ciudadSede

额外说明

如果需要统计马德里所有部门,包括没有员工的部门(这类部门员工数显示为0),可以把JOIN empleados改成LEFT JOIN empleados:

SELECT 
    d.nomDepar, 
    s.ciudadSede, 
    COUNT(e.idempleado) AS "Numero de Empleados"
FROM departamentos d
JOIN sedes s ON d.idSede = s.idSede
LEFT JOIN empleados e ON d.idDepar = e.idDepar
WHERE s.ciudadSede = 'Madrid'
GROUP BY d.nomDepar, s.ciudadSede

内容的提问来源于stack exchange,提问作者Cristian G. Rodriguez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 01:35:45