0

従業員テーブルに従業員の詳細と従業員のdeptIdがあるとします。各部門の従業員数を取得するには、

select deptId, COUNT(*) from employee group by deptId; 

質問は次のとおりです。上記の結果セットの従業員の最大数を持つdeptIdを取得するには、

select Top 1 deptId, COUNT(*) from employee group by deptId order by 2 desc

(2-クエリリストの2番目の列を参照)-実行します。

このセットの注文を避ける方法はありますか?またはこのSQLを書くためのより良い方法、

ありがとう

4

2 に答える 2

0

注文がないと大変ですが、やってみてください

   Select deptId, cnt
   From (Select deptId, count(*) cnt
         from employee
         Group By deptId) Z
   Where cnt = (Select Max(cnt) 
                From (Select deptId, count(*) cnt
                      From employee
                      Group By deptId) ZZ) 
于 2013-03-13T13:46:26.717 に答える
0

部門内の従業員数だけが必要な場合はMAX、次のようにできます。

SELECT TOP 1  DepartmentID, 
       COUNT(EmployeeID) 
FROM EmployeeTable
GROUP BY DepartmentID
ORDER BY COUNT(EmployeeID) DESC
于 2013-03-13T13:40:03.647 に答える