У меня есть база данных о спорте (крикет, бит, как бейсбол от моих американских друзей), мой запрос, чтобы получить большинство калиток (аут в бейсболе) в данном сезоне, выглядит следующим образом:Последовательное использование значений из столбца в разделе где
select top(5)
S.Season,
TT.Team,
P.LastCommaSpaceFirst,
SUM(PIS.Wickets) AS 'Wickets'
from PlayerInningsSummary PIS
join Personel P on P.PersonID = PIS.PlayerID
join InningsSummary INS on PIS.InningsSummaryID = INS.InningsSummaryID
join Matches M on INS.MatchID = M.MatchID
join Seasons S on M.SeasonID = S.SeasonID
join Teams TT on M.TeamID = TT.TeamID
where TT.Team = '1st XI' --and S.Season = '1973/1974'
group by S.Season, TT.Team, P.LastCommaSpaceFirst
order by Wickets desc
Таким образом, этот запрос попадает в пятерку лучших людей, которые принимали большинство калиток за сезон (1973/1974 в этом случае).
Запрос работает отлично, но я хочу повторить все сезоны, которые у меня есть (например: 1974/1975, 1975/1975 и т. Д.).
Как это сделать? Я думаю, что ROW_OVER с PARTITION BY - это путь, но я не могу понять, как это сделать.
Цените любую помощь.
Я думаю, если вы включите выборочные данные и желаемый результат, будет легче ответить на ваш вопрос. –
Кажется, что CTE может быть альтернативой, но я тоже не знаком с этим. – Yabbie
Я не могу получить форматирование для работы :( @TimBiegeleisen 'Сезон | Команда | Имя | Wickets ------------------------- ---------------- 1973/1974 | 1-й XI | SMITH, John | 38 1973/1974 | 1-й XI | SMITH, Bill | 32 1973/1974 | 1st XI | SMITH, Phil | 27 1973/1974 | 1-й XI | SMITH, Craig | 26 1973/1974 | 1-й XI | SMITH, Ben | 21 ' – Yabbie