2016-05-18 118 views
-3

所以我有两列,employeeIDReportsTo这是员工报告给EmployeeID。如果我找到雇员人数最多的employeeID向他们报告,这将如何完成?列值之间的关系

+0

使用JOIN和COUNT很容易。你试过什么了?你究竟在干什么? –

回答

-1

试试这个

select top 1 ReportsTo, count(distinct employeeID) 
from InsertYourTableName 
group by ReportsTo 
order by 2 desc 
-1

试试这个(考虑ReportsToEmployeeID组合具有独特的条目):

SELECT TOP 1 COUNT(ReportsTo) as NoOfEmp, EmployeeID 
FROM TABLE_NAME 
GROUP BY EmployeeID 
ORDER by NoOfEmp DESC 
1

你要组上级列的记录,统计员工的数量。您可以使用下面的查询。此查询将给出员工分配给“报告至”的记录。

select COUNT(distinct EmployeeID) as EmployeeCount,ReportsTo from TableName group by ReportsTo order by EmployeeCount desc 
1

我不明白你的问题。根据我的理解,这个查询可能会有所帮助。

SELECT count(ReportsTo) as largest_number from tablename GROUP BY ReportsTo ORDER BY largest_number DESC LIMIT 0,1

0
SELECT TOP 1 ReportsTo,COUNT(*) AS NoOfReporters 
FROM TABLE_NAME 
GROUP BY ReportsTo 
ORDER BY NoOfReporters DESC 

我假设雇员为你的表的主键,所以不会是重复的记录。ReportsTo是其他Employee Report和NoOfReporters是向其报告的员工的EmployeeID。