ページングを使用して各 ItemCategoryID で 5 つのレコードを選択しようとしています。以下のクエリを使用して、各カテゴリで 5 つのレコードを取得できますが、ページ サイズ 10 を宣言したため、ページングは機能しませんが、19 のレコードと @ItemCounter を取得しています。 TotalCount は 45 になっています...解決方法がわかりません..クエリは次のとおりです。
DECLARE @PageIndex int = 1
DECLARE @PageSize int = 10
DECLARE @StartRow int
DECLARE @EndRow int
SET @StartRow = (@PageSize * (@PageIndex - 1)) + 1
SET @EndRow = @PageSize * @PageIndex + 1
DECLARE @ItemCounter int
SELECT @ItemCounter = Count(*)FROM dbo.Auctions WHERE AuctionStatus=1;
WITH Auctions AS
(
SELECT ROW_NUMBER() OVER
(PARTITION BY ItemCategoryID ORDER BY AuctionID) AS RowNumber,
AuctionID,
ItemCategoryID ,
@ItemCounter TotalCount
FROM Auctions
WHERE
AuctionStatus=1
)
SELECT a.* FROM Auctions a
WHERE a.RowNumber <=3 AND a.RowNumber
BETWEEN @StartRow AND @EndRow - 1
前もって感謝します。