I use "COUNT(*) OVER()" function with SQL Server to get total row count for paging. I use distinct keyword but it's get row count with duplicates rows.
Total row count is 772 normally, but the query returns 1024 because there are duplicate rows.
SELECT DISTINCT
ss.ProdSmartId,
p.ProdId,
ProdName,
TotalRowCount = COUNT(*) OVER()
FROM
ProdSmartSorts ss
JOIN
dbo.Products p ON ss.ProdId = p.ProdId AND p.IsDeleted = 0 AND p.ProdStatus = 1
JOIN
Users u ON p.UserId = u.Id
LEFT JOIN
Pictures pic ON pic.ProdId = p.ProdId AND pic.IsCover = 1
ORDER BY
ss.ProdSmartId
OFFSET 1 ROWS FETCH NEXT 10000 ROWS ONLY