Как показать номера строк в запросе PostgreSQL?
Я хотел бы показать номер наблюдения для каждой записи, возвращенной запросом PostgreSQL.
Я думаю, что в 8.4 оконной функции могут выполнять эту функцию.
3 ответа:
select row_number() over (order by <field> nulls last) as rownum, * from foo_tbl order by <field>
Если заказ не требуется, этот ответ также может быть упрощен:
select row_number() over(), * -- notice: no fields are needed from foo_tbl
для версии до 8.4:
SELECT count(*) rownum, foo.* FROM datatable foo JOIN datatable bar ON (foo.pk_id < bar.pk_id) GROUP BY foo.pk_id, foo.a, foo.b ORDER BY rownum ; -- if there isn't a single unique/primary key field, you can concatenate fields -- Example: ON (foo.a||foo.b||foo.c < bar.a||bar.b||bar.c)
надеюсь, это кому-то поможет.