我们有一个包含 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 的经理的名字 我们如何输出员工最多的经理的名字?
答案 0 :(得分:0)
首先,修正 ON
子句。其次,如果您想要一行,请使用 ORDER BY
和 LIMIT
:
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