SQL-HR架构,检索每个部门的部门名称、经理和员工

SQL-HR架构,检索每个部门的部门名称、经理和员工,sql,Sql,大家好,提前感谢你们的时间和帮助。 因此,我试图获得一份部门名称、经理姓名以及每个部门的员工总数的列表。 到目前为止,我的代码如下所示: select d.department_name,e.first_name,e.last_name from employees e, departments d where e.department_id = d.department_id and d.manager_id=e.employee_id group by d.department_name,

大家好,提前感谢你们的时间和帮助。 因此,我试图获得一份部门名称、经理姓名以及每个部门的员工总数的列表。 到目前为止,我的代码如下所示:

select d.department_name,e.first_name,e.last_name
from employees e, departments d 
where e.department_id = d.department_id and d.manager_id=e.employee_id
group by d.department_name,e.first_name,e.last_name
order by d.department_name;

这就产生了每个部门的经理名单,但我仍然缺少每个部门的员工数量。有什么想法吗?

您需要使用计数功能。试试这个:

select d.department_name,e.first_name,e.last_name,count(e.employee_id) as `TotalNoOfEmployees`
from employees e JOIN departments d 
ON e.department_id = d.department_id and d.manager_id=e.employee_id
group by d.department_name,e.first_name,e.last_name
order by d.department_name;

另外,尽量不要使用旧的连接表的方法,即逗号分隔连接。

经过大量实验,我得到了它。发布它,以防有人在某一天发现它有用:

select distinct d.department_name,
(select  e.first_name||', '||e.last_name from employees e 
 where d.department_id=e.department_id and 
 d.manager_id=e.employee_id)as "manager_name", 
 ( select count( employee_id ) from employees e
 where d.department_id=e.department_id ) as "total_no_of_employees"   
 from employees e
 join departments d on d.department_id=e.department_id
  order by d.department_name;
试试这个:

select d.department_name,e.first_name,e.last_name,count(e.employee_id) as `TotalNoOfEmployees`
from employees e JOIN departments d 
ON e.department_id = d.department_id and d.manager_id=e.employee_id
group by d.department_name,e.first_name,e.last_name
order by d.department_name;
select emp.manager_id, mgr.first_name, mgr.last_name, dept.department_name, count(emp.employee_id)
from hr.employees emp
join hr.employees mgr
on emp.manager_id = mgr.employee_id
join hr.departments dept
on mgr.department_id = dept.department_id
group by emp.manager_id, mgr.first_name, mgr.last_name, dept.department_name
order by department_name

谢谢你的建议。我已经在那个特定点上尝试了count函数并运行了查询,但是我得到了每个部门一名员工的总数。在这种情况下,我认为SQL developer会计算满足d.manager\u id=e.employee\u id条件的employee\u id-manager的数量。