我有一张简单的表格,其中包括过去几年的每次销售。我想知道每个月的最高销售量以及制作者以及年份和月份。
表格包含以下列:
ID,日期,金额,employeeId
我按年(日期),月(日期),employeeId对数据进行分组,并使用总和(金额)查找每个的销售情况每个月的员工。然后我将月(日期)进一步分组,并在总和(金额)列上使用max来查找每月的最大销售额。这很容易。
之后,我想知道确切(日期)的时间以及(employeeId)的具体销售情况。
答案 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