Für die erste Frage, warum nicht einfach?
SELECT COUNT(*) FROM myTable
um die Zählung zu erhalten.
Und für die zweite Frage ist der Primärschlüssel der Zeile das, was verwendet werden sollte, um eine bestimmte Zeile zu identifizieren. Versuchen Sie nicht, die Zeilennummer dafür zu verwenden.
Wenn Sie Row_Number() in Ihrer Hauptabfrage zurückgegeben haben,
SELECT ROW_NUMBER() OVER (Order by Id) AS RowNumber, Field1, Field2, Field3
FROM User
Wenn Sie dann 5 Zeilen zurückgehen möchten, können Sie die aktuelle Zeilennummer nehmen und die folgende Abfrage verwenden, um die Zeile mit currentrow -5
zu bestimmenSELECT us.Id
FROM (SELECT ROW_NUMBER() OVER (ORDER BY id) AS Row, Id
FROM User ) us
WHERE Row = CurrentRow - 5