我如何获得最大计数的详细信息?
How do i get the details of the max of a count?
我有一个 table:
|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 ')'.
我不知道为什么。
我知道这部分可以提供 table managerIDs 的计数:
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
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)
我有一个 table:
|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 ')'.
我不知道为什么。
我知道这部分可以提供 table managerIDs 的计数:
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
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)