按月分组并添加年份和员工

时间:2015-06-04 14:29:15

标签: sql sql-server group-by

我有一张简单的表格,其中包括过去几年的每次销售。我想知道每个月的最高销售量以及制作者以及年份和月份。

表格包含以下列:

  

ID,日期,金额,employeeId

我按年(日期)月(日期),employeeId对数据进行分组,并使用总和(金额)查找每个的销售情况每个月的员工。然后我将月(日期)进一步分组,并在总和(金额)列上使用max来查找每月的最大销售额。这很容易。

之后,我想知道确切(日期)的时间以及(employeeId)的具体销售情况。

3 个答案:

答案 0 :(得分:0)

按年份(日期),月份(日期),employeeId和使用金额(金额)分组数据,以查找每个月每个员工的销售情况,然后按金额(金额)desc订购。您的最高卖家将成为结果的顶部。

答案 1 :(得分:0)

大多数数据库都支持ANSI标准rank()功能。这可能会做你想要的:

select s.*
from (select year(date) as yyyy, month(date) as mm, employeeid, sum(amount) as amount,
             rank() over (partition by year(date), month(date) 
                          order by sum(amount) desc
                         ) as seqnum
      from simpletable
     ) s
where seqnum = 1;

答案 2 :(得分:0)

如果我理解正确的话,我认为你可以这样做:

select top 1 with ties year(date), month(date), employeeId 
from TableName
group by year(date), month(date), employeeId
order by sum(amount) desc