选择员工最多的经理姓名

时间:2021-06-25 13:46:29

标签: sql postgresql

我们有一个包含 empno、ename、job、mgr、hiredate、sal、comm、deptno 列的 emp 表

我试过了

SELECT m.ename, COUNT(e.empno) FROM emp e
INNER JOIN emp m ON e.empno = m.empno
GROUP BY m.ename HAVING COUNT(e.empno) = GREATEST(COUNT(e.empno));

我的输出是每个值为 1 的经理的名字 我们如何输出员工最多的经理的名字?

2 个答案:

答案 0 :(得分:0)

首先,修正 ON 子句。其次,如果您想要一行,请使用 ORDER BYLIMIT

SELECT m.ename, COUNT(e.empno)
FROM emp e INNER JOIN
     emp m
     ON m.empno = e.mgr
GROUP BY m.ename
ORDER BY COUNT(e.empno) DESC
LIMIT 1;

您的 HAVING 子句不会过滤任何内容,因为任何(非 NULL)值都等于自身。

答案 1 :(得分:0)

以下工作:

testRestTemplate