Sql 如何显示各部门各岗位员工人数

Sql 如何显示各部门各岗位员工人数,sql,sql-server,Sql,Sql Server,我有两张表,分别是Employee和Department 员工Emp_ID、姓名、职位、部门 部门ID、部门名称 员工的职位可以是技术支持、数据录入或助理经理 我想显示每个部门的名称以及在每个职位工作的员工人数,这样每个职位都会显示在一个单独的列中 如果部门没有员工在某个岗位工作,则显示的数字应为零 样本输出: Dept_Name tech_support data_entry assistant manager Accounts

我有两张表,分别是Employee和Department

员工Emp_ID、姓名、职位、部门

部门ID、部门名称

员工的职位可以是技术支持、数据录入或助理经理

我想显示每个部门的名称以及在每个职位工作的员工人数,这样每个职位都会显示在一个单独的列中

如果部门没有员工在某个岗位工作,则显示的数字应为零

样本输出:

Dept_Name         tech_support       data_entry        assistant manager
Accounts               5                 6                 2
Production             2                 4                 2
Sales/Marketing        0                 6                 3
使用部门到员工的左连接和条件聚合:

select
  d.dept_name,
  sum(case when e.position = 'tech_support' then 1 else 0 end) tech_support,
  sum(case when e.position = 'data_entry' then 1 else 0 end) data_entry,
  sum(case when e.position = 'assistant_manager' then 1 else 0 end) assistant_manager
from department d left join employee e
on e.deptid = d.department_id
group by d.department_id, d.dept_name

你能告诉我们到目前为止你做了什么吗?是的,我做了,我将去研究条件聚合,因为我以前没有学过它。