Una de las funciones más utilizadas en la Base de datos Oracle es ROWNUM que nos permite numerar nuestras consultas y usarla como un campo más aunque no esté en la tabla a la que le hicimos el query.
En PostgreSQL existe una función para agregar la misma funcionalidad llamada row_num, a partir de la versión 8.4 o superior esta está implementada en este extraordinario motor de base de datos. Para versiones anteriores hay diferentes métodos para conseguir lo mismo y que se puede encontrar en la web.
Para el ejemplo referenciar así:
- campo: El campo que va a usar la función para contar los registros
- mi_tabla: Tabla de la cual se quiere agregar la numeración
La forma de usar la función es la siguiente:
[sql]SELECT ROW_NUMBER() OVER (ORDER BY campo) AS item, mt.*
FROM mitabla mt;[/sql]
Es faltible usar el campo para hacer una ordenación previmente y luego numerar, de la siguiente forma:
[sql]SELECT ROW_NUMBER() OVER (ORDER BY campo DESC) AS item, mt.*
FROM mitabla mt;[/sql]
Tambien se puede especificar ciertos campos y no todos los campos como en las anteriores consultas, así:
[sql]SELECT ROW_NUMBER() OVER (ORDER BY campo) AS item,
mt.campo1, mt.campo2, mt.campo3 FROM mitabla mt;[/sql]
Por el momento es todo, espero les sea de utilidad.