Sql 如何获取计数最大值的详细信息?

Sql 如何获取计数最大值的详细信息?,sql,sql-server,count,max,Sql,Sql Server,Count,Max,我有一张桌子: |eid |ManagerID|Phone#|(other details..| |------|---------|------|----------------| |1001 |1004 |12345 |......... | |1002 |1004 |1233 |......... | |1003 |1006 |133 |......... | |1004 | |444 |..

我有一张桌子:

|eid   |ManagerID|Phone#|(other details..|
|------|---------|------|----------------|
|1001  |1004     |12345 |.........       |
|1002  |1004     |1233  |.........       |
|1003  |1006     |133   |.........       |
|1004  |         |444   |.........       |
|1005  |1004     |555   |.........       |
|1006  |         |666   |.........       |
等等

我试图为管理最多员工的经理显示所有字段

我有

SELECT *
FROM EMPLOYEE 
GROUP BY Manager
HAVING COUNT (Manager)=(
SELECT MAX(theCount) AS theCount
FROM (
SELECT Manager, COUNT(Manager) theCount
FROM EMPLOYEE
GROUP BY Manager));
但不断出现错误:

Incorrect syntax near ')'.
我不知道为什么

我知道这一部分的作用是提供一个包含管理者计数的表:

SELECT Manager, COUNT(Manager) 
AS theCount 
FROM EMPLOYEE 
GROUP BY Manager

你可以试试下面的方法-

select * from
(
select managerid,count(*) as cnt,row_number() over(order by count(*) desc)
as rn
from
employee where managerid is not null
group by managerid
)A where rn=1
输出:

managerid   cnt rn
1004         3  1

什么是您的dbms?使用Microsoft SSMSIs这是一个递归表(我的意思是,
ManagerID
eid
的外键吗)?如果是,您支持多少层递归?请将您的问题包括在内并显示预期结果,以及您正在使用的SQL Server版本的标记。您使用的是基于不符合问题文本的分组的
count(*)
。。。
WITH managers AS (
SELECT
  ManagerID,
  count(eid) as directs_count
FROM employee
GROUP BY ManagerID
)
SELECT *
FROM employee
WHERE
  eid in (SELECT TOP 1 ManagerID FROM managers ORDER BY directs_count DESC)