编写SQL查询以获取列中值的最大值

ano*_*ous 10 sql

我有一张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)


Nic*_*ndo 4

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)