Cita: Desde el lado programación, en este caso, trato de darle el trabajo al motor de la base.
La base de datos no está para eso. Los lenguajes de programación tienen mejores recursos para realizar ese tipo de tareas.
Para decirtelo en pocas palabras, en la base deberás hacer al menos dos queries para lograrlo, o implementar stored procedures, o incluso trigger, lo que es una pésima idea.
En programación sería solamente obtener en una variable el total de registros devueltos y usarla en forma decremental,
al mismo tiempo que despliegas los datos de cada regisatro.
A lo más serían dos o tres líneas de código.
¿De verdad te parece mejor darle esa tarea a la base?