我有一张emp表格,其中包含以下记录:
INSERT into emp(EmpId,Emp name, Manager)
Values(1,A,M1)
values(2,B,M1)
values(3,C,M2)
values(4,D,M3)
Run Code Online (Sandbox Code Playgroud)
如何才能找到Manager最多的员工?在这种情况下,输出应该是M1.请帮忙.
Bri*_*ver 19
select manager, count(*) as employees from emp
group by manager
order by count(*) desc
Run Code Online (Sandbox Code Playgroud)
拿第一条记录.根据您的SQL版本,您可以使用限制语句执行此操作.
小智 5
在 SQL Server 中...
SELECT TOP 1 Manager
FROM ( SELECT Manager,
COUNT(Manager) as "ManagerCount"
FROM emp
GROUP BY Manager
ORDER BY "ManagerCount" DESC )
Run Code Online (Sandbox Code Playgroud)
甲骨文有点不同......
SELECT Manager
FROM ( SELECT Manager,
COUNT(Manager) as "ManagerCount"
FROM emp
GROUP BY Manager
ORDER BY "ManagerCount" DESC )
WHERE ROWNUM <= 1
Run Code Online (Sandbox Code Playgroud)
SELECT
Manager,
count(Manager) AS 'Num of Emps'
FROM
emp
GROUP BY
Manager
ORDER BY
'Num of Emps' DESC
Run Code Online (Sandbox Code Playgroud)
第一个记录将是拥有最多员工的经理。另外,根据数据库提供程序,您可以将结果集限制为 1,这样您只能获得最高的记录。这是一个使用 sql server 的示例:
SELECT
TOP 1 Manager,
count(Manager) AS 'Num of Emps'
FROM
emp
GROUP BY
Manager
ORDER BY
'Num of Emps' DESC
Run Code Online (Sandbox Code Playgroud)