Til det første spørgsmål, hvorfor ikke bare bruge?
SELECT COUNT(*) FROM myTable
for at få optællingen.
Og for det andet spørgsmål er den primære nøgle i rækken, hvad der skal bruges til at identificere en bestemt række. Forsøg ikke at bruge rækkenummeret til det.
Hvis du returnerede Row_Number() i din hovedforespørgsel,
SELECT ROW_NUMBER() OVER (Order by Id) AS RowNumber, Field1, Field2, Field3
FROM User
Når du så vil gå 5 rækker tilbage, kan du tage det aktuelle rækkenummer og bruge følgende forespørgsel til at bestemme rækken med nuværende række -5
SELECT us.Id
FROM (SELECT ROW_NUMBER() OVER (ORDER BY id) AS Row, Id
FROM User ) us
WHERE Row = CurrentRow - 5