Más de una vez tuve la necesidad de en una consulta enumerar las filas de la misma, por medio de una columna calculada auto incremental ¿se entiende cual era me requerimiento?

Explicándolo de nuevo, mi necesidad era de contar con una nueva columna que sea un número auto incremental y que represente el número de fila. Según el artículo original esto se puede hacer en Oracle a través de la variable rownum (no doy fe de ello pues no conozco).

Bien, en esta publicación disponemos de la solución.

Veamos un ejemplo: tengo la siguiente tabla con nombres de ciudades ordenadas alfabéticamente:

mysql> SELECT id,name FROM City ORDER BY name ASC LIMIT 15;
+------+----------------------+
| id   | name                 |
+------+----------------------+
670 | A Coruña (La Coruña) |
| 3097 | Aachen               |
| 3318 | Aalborg              |
| 2760 | Aba                  |
| 1404 | Abadan               |
395 | Abaetetuba           |
| 3683 | Abakan               |
| 1849 | Abbotsford           |
| 2747 | Abeokuta             |
478 | Aberdeen             |
| 3191 | Abha                 |
| 2812 | Abidjan              |
| 1703 | Abiko                |
| 3989 | Abilene              |
| 1309 | Abohar               |
+------+----------------------+
15 rows in set (0.00 sec)

El código a continuación utiliza una variable @rownum que inicializa como argumento del FROM y se evita de declarar la variable previamente con SET @rownum: = 0;

El resultado es el que veremos abajo, sencillo y sorprendente:

mysql> SELECT @rownum:=@rownum+1 'row number',name
FROM City C , (SELECT @rownum:=0) R
ORDER BY name ASC LIMIT 15;
+------------+----------------------+
| row number | name                 |
+------------+----------------------+
|          1 | A Coruña (La Coruña) |
|          2 | Aachen               |
|          3 | Aalborg              |
|          4 | Aba                  |
|          5 | Abadan               |
|          6 | Abaetetuba           |
|          7 | Abakan               |
|          8 | Abbotsford           |
|          9 | Abeokuta             |
|         10 | Aberdeen             |
|         11 | Abha                 |
|         12 | Abidjan              |
|         13 | Abiko                |
|         14 | Abilene              |
|         15 | Abohar               |
+------------+----------------------+
15 rows in set (0.01 sec)

Vía: The road to using MySQL