-4

这是我的表结构

Id  Date        Candidates
1   2013-04-07  16
2   2013-04-27  12
3   2013-10-22  13
4   2013-10-08  1
5   2013-10-24  9
6   2012-07-11  14
7   2012-07-14  5

我想要动态查询来查找招聘的候选人的最大数量。我希望根据年度、月份和日期的最大候选人数量得出结果。如何在 sql 中为此条件编写查询。请任何人帮助我

输出应该是,如果我需要按月计算,则上述数据的输出是,

招聘的候选人数量最多的是month-04,总数是28,输出是Month-April和Candardes-28

我需要输出为上述数据招募的最大候选人人数。

4

1 回答 1

0

公用表表达式可以获取日期详细信息,然后您只需要一个正则GROUP BY即可获得正确的结果;

WITH cte AS (
  SELECT SUBSTRING(CONVERT(VARCHAR, Date, 112), 1, 4) year, candidates
  FROM recruited
)
SELECT TOP 1 year best_year, SUM(candidates) candidates FROM cte
GROUP BY year ORDER BY candidates DESC;

一个用于测试的 SQLfiddle

于 2013-10-25T09:01:05.853 回答