За първия въпрос, защо просто не използвате?
SELECT COUNT(*) FROM myTable
за да получите броя.
И за втория въпрос, първичният ключ на реда е какво трябва да се използва за идентифициране на конкретен ред. Не се опитвайте да използвате номера на реда за това.
Ако сте върнали Row_Number() в основната си заявка,
SELECT ROW_NUMBER() OVER (Order by Id) AS RowNumber, Field1, Field2, Field3
FROM User
След това, когато искате да се върнете 5 реда назад, можете да вземете номера на текущия ред и да използвате следната заявка, за да определите реда с currentrow -5
SELECT us.Id
FROM (SELECT ROW_NUMBER() OVER (ORDER BY id) AS Row, Id
FROM User ) us
WHERE Row = CurrentRow - 5