2016-05-18 115 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。