作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
没有下属的员工应列为下属为零,此查询也应显示该员工。我目前可以返回所有有下属的员工,但我似乎无法显示下属为零的员工。
这是目前的代码:
SELECT s.empno, s.ename, COUNT(*) as "Num_subordinates"
FROM emp e
JOIN emp s ON s.empno=e.super
GROUP BY s.empno, s.ename;
最佳答案
您的语句中唯一缺少的是使用 LEFT JOIN
而不是 INNER JOIN
。在 LEFT JOIN
中计数时,您还需要指定 ID
而不是 *
,这样您就不会产生 1
COUNT()
如果员工没有下属。
SELECT e.empno, e.ename, COUNT(s.empno) as "Num_subordinates"
FROM emp e
LEFT JOIN emp s ON s.empno = e.super
GROUP BY e.empno, e.ename
要进一步了解有关联接的更多信息,请访问以下链接:
关于sql - 我需要写一个查询来列出所有员工和他们拥有的下属人数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16682368/
我有一个包含以下数据的表 emp: EmpID EmpName MgrID 100 King NULL 101 Smith 100 102
我是一名优秀的程序员,十分优秀!