【发布时间】:2017-04-01 19:40:19
【问题描述】:
在我的代码中,我试图合并两个数据表,Employee 和 Department。我试图编写一个查询来打印所有部门的相应部门名称和员工人数,甚至是无人值守的部门。我的查询如下所示:
SELECT department.name, count(department.name) AS CountOfNAME
FROM department LEFT JOIN employee ON department.dept_id = employee.dept_id
GROUP BY department.name
ORDER BY Count(department.name) DESC, department.name ASC;
结果是:
Engineering 5
Recruitment 5
Sales 3
Product 2
Finance 1
Operations 1
Research&Development 1
此代码的工作原理是按员工人数对部门进行排序,然后按字母顺序排列,但 Finance 和 Research&Development 不应该有任何人。有什么方法可以正确地将这些结果显示为拥有 0 名员工?由于 join 的工作方式,在 SQL 中似乎很难做到。
【问题讨论】: