select *
from
(
select year,
week,
salesperson,
count(*) as transactions,
rank() over(partition by week order by count(*) desc) as ranking
from sales
where year = '2010',
group by year,
week,
salesperson
) temp
where ranking <= 10
该查询返回一年中每周前 10 名销售人员的列表(以交易次数计)。
如何在我的结果中添加列:
- 该销售人员上周的排名
- 今年前 10 名的总周数
- 连续进入前 10 周(从第 1 周开始)
- 连续几周进入前 10 名(如果可能,从上一年开始)
您能否就如何解决此类问题提供一般性建议?
PS:使用SQL Server 2008