【问题标题】:T-Sql query for the situation - Need a departmentID with max number of employees?针对情况的 T-Sql 查询 - 需要具有最大员工人数的部门 ID?
【发布时间】:2013-03-13 21:46:26
【问题描述】:

假设员工表包含员工详细信息和员工的部门 ID。 获取每个部门的员工人数,

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

问题是:要得到上述结果集中雇员人数最多的deptId,

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

(2-ref 到查询列表中的第二列) - 可以.. 但是

有没有办法避免订购这套?或者更好的写这个sql的方法,

谢谢

【问题讨论】:

  • 你想达到什么目的?为什么订购套装不好?
  • 如果有两个部门的员工人数最多,您期望/想要什么?

标签: sql-server tsql count max


【解决方案1】:

如果您只想要一个部门内的MAX 员工数量,您可以这样做:

SELECT TOP 1  DepartmentID, 
       COUNT(EmployeeID) 
FROM EmployeeTable
GROUP BY DepartmentID
ORDER BY COUNT(EmployeeID) DESC

【讨论】:

    【解决方案2】:

    没有任何命令,很难,但尝试

       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) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-14
      • 1970-01-01
      • 1970-01-01
      • 2022-12-19
      • 1970-01-01
      • 2021-07-24
      相关资源
      最近更新 更多