Я пытаюсь ограничить количество строк в каждом случае только 5 строками. Некоторые случаи имеют только 1 или 2 ряда, но некоторые из них имеют 15 или более.Ограничить количество строк на ID
Это пример хранимой процедуры, которую я использую, чтобы подсчитать количество строк в каждом случае.
SELECT ROW_NUMBER() OVER(partition by rce.reportruncaseid ORDER BY rce.Reportruncaseid) AS Row, rce.ReportRunCaseId AS CaseId, YEAR(rce.EcoDate) AS EcoYear
FROM PhdRpt.ReportCaseList AS rcl INNER JOIN
PhdRpt.RptCaseEco AS rce ON rce.ReportId = rcl.ReportId AND rce.ReportRunCaseId = rcl.ReportRunCaseId
GROUP BY rce.ReportId, rce.ReportRunCaseId, YEAR(rce.EcoDate)
Order by rce.ReportRunCaseId, YEAR(rce.EcoDate)
Вот скриншот того, что производит эта хранимая процедура: screenshot
Я пытался использовать где положение, но это не позволит мне поставить функцию окна после того, как, где положение. Он также не распознает мой псевдоним «Строка».
Есть ли другой способ подсчета числа или строк в каждом случае (вместо функции окна), чтобы я мог использовать предложение where? Или существует способ ограничить записи в каждом случае 5, используя существующую хранимую процедуру?
Заранее благодарю вас за помощь.
Огромное спасибо. Это прекрасно работает. Если мне нужно было добавить больше столбцов, я бы добавил их в первый оператор select или второй? –
вам нужно добавить их в предложение 'CTE'. Записи внешнего оператора основаны на 'CTE'. –
Отлично. Еще раз спасибо! –