2016-05-18 4 views
-3

私はemployeeIDReportsToの2つの列を持っています。これは従業員が報告する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

あなたは[報告先の欄にグループにレコードを持っており、従業員の数を数えます。以下のクエリを使用することができます。このクエリは、従業員がレポートToに割り当てられていないレコードを返します。

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は、他の従業員レポートおよびNoOfReportersが報告する従業員であるEmployeeIDです。

関連する問題