Na pierwsze pytanie, dlaczego po prostu nie użyć?
SELECT COUNT(*) FROM myTable
aby uzyskać rachubę.
A w przypadku drugiego pytania kluczem podstawowym wiersza jest to, co powinno być użyte do zidentyfikowania konkretnego wiersza. Nie próbuj używać do tego numeru wiersza.
Jeśli zwróciłeś Row_Number() w głównym zapytaniu,
SELECT ROW_NUMBER() OVER (Order by Id) AS RowNumber, Field1, Field2, Field3
FROM User
Następnie, gdy chcesz cofnąć się o 5 wierszy, możesz wziąć bieżący numer wiersza i użyć następującego zapytania, aby określić wiersz z bieżącym wierszem -5
SELECT us.Id
FROM (SELECT ROW_NUMBER() OVER (ORDER BY id) AS Row, Id
FROM User ) us
WHERE Row = CurrentRow - 5