找到雇用最多雇员人数的月份

时间:2016-10-24 10:26:52

标签: sql sql-server-2008

我有一种情况需要找到雇用最多雇员的月份。

这是我的员工表:

enter image description here

虽然我有一个解决方案:

select MM 
from (
       select *, dense_RANK() OVER(order by cnt desc) as rnk 
       from (
              select month(doj) as MM,count(month(doj)) as CNT 
              from employee 
              group by month(doj)
       )x 
   )y 
   where rnk=1

但我对我所实施的内容并不满意,并希望找到最可行的解决方案。

1 个答案:

答案 0 :(得分:0)

我认为最简单的方法是:

select top 1 year(doj), month(doj), count(*)
from employee
group by year(doj), month(doj)
order by count(*) desc;

注意:

  • 这将“月”解释为“年/月”。如果您确实只想要月份,请从year()select移除group by
  • 返回一行。如果在有联系时需要多行,请使用select top (1) with ties