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 лучших продавцов (по количеству транзакций) за каждую неделю года.SQL Server: 10 лучших продавцов в неделю - и предыдущий рейтинг
Как я могу идти о добавлении столбцов в мои результаты для:
- прошлой недели рейтинга для этого продавец
- Всего недель в топ-10 в этом году
- недель подряд в Топ-10 (начиная с 1-й недели)
- Последовательные недели в топ-10 (начиная с прошлого года, если это возможно)
Можете ли вы дать общий совет о том, как решить эти проблемы?
PS: Использование сервера SQL 2008
Чтобы узнать значения предыдущих недель, вам нужно знать, что такое текущая неделя ... –