Seleccione el número de fila en postgres


102

Cómo seleccionar el número de fila en postgres.

Probé esto:

select
    row_number() over (ORDER BY cgcode_odc_mapping_id)as rownum,
    cgcode_odc_mapping_id
  from access_odc.access_odc_mapping_tb
  order by cgcode_odc_mapping_id

y obtuve este error:

ERROR: error de sintaxis en o cerca de "terminado"
LÍNEA 1: seleccione row_number () sobre (ORDER BY cgcode_odc_mapping_id) como

He revisado estas páginas: ¿Cómo mostrar los números de fila en la consulta de PostgreSQL?


Esta es mi consulta:

 select row_number() over (ORDER BY cgcode_odc_mapping_id)as rownum,cgcode_odc_mapping_id from access_odc.access_odc_mapping_tb order by cgcode_odc_mapping_id 

este es el error:

ERROR: error de sintaxis en o cerca de "sobre" LÍNEA 1: seleccione número_fila () sobre (ORDEN POR cgcode_odc_mapping_id) como


3
Not Workingno nos dice nada en lo que podamos ayudar. Por favor, ¿podría darnos mensajes de error y / o cualquier otra información relevante? Además, especifique la versión de PostgreSQL que está utilizando.
MatBailie


1
Supongo que no funciona porque está intentando usar funciones de ventana en una versión anterior de PostgreSQL que no las admite.
Craig Ringer

2
No hay PostgreSQL versión 1.8.4.
kgrittn

1
select version()
Publique

Respuestas:


178
SELECT tab.*,
    row_number() OVER () as rnum
  FROM tab;

Aquí está la sección relevante en los documentos.

PD: Esto, de hecho, coincide completamente con la respuesta de la pregunta a la que se hace referencia.


18
También debe especificar un orden en OVERla cláusula: OVER (ORDER BY id). De lo contrario, el pedido no está garantizado.
AlexM

3
@pumbo Appears row_number () devuelve "el número de fila del conjunto de resultados" (es decir, siempre 1 2 3 4 ... si lo especifica over ()); sin embargo, si tiene una consulta externa, reorganice el orden de resultados, por supuesto, ref: stackoverflow.com/a / 3397149/32453 comentarios
rogerdpack
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.