Sql 如何显示各部门各岗位员工人数
我有两张表,分别是Employee和Department 员工Emp_ID、姓名、职位、部门 部门ID、部门名称 员工的职位可以是技术支持、数据录入或助理经理 我想显示每个部门的名称以及在每个职位工作的员工人数,这样每个职位都会显示在一个单独的列中 如果部门没有员工在某个岗位工作,则显示的数字应为零 样本输出:Sql 如何显示各部门各岗位员工人数,sql,sql-server,Sql,Sql Server,我有两张表,分别是Employee和Department 员工Emp_ID、姓名、职位、部门 部门ID、部门名称 员工的职位可以是技术支持、数据录入或助理经理 我想显示每个部门的名称以及在每个职位工作的员工人数,这样每个职位都会显示在一个单独的列中 如果部门没有员工在某个岗位工作,则显示的数字应为零 样本输出: Dept_Name tech_support data_entry assistant manager Accounts
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
你能告诉我们到目前为止你做了什么吗?是的,我做了,我将去研究条件聚合,因为我以前没有学过它。