Как показать номера строк в запросе PostgreSQL? - PullRequest
66 голосов
/ 03 августа 2010

Я хотел бы показать номер наблюдения для каждой записи, возвращаемой запросом PostgreSQL.

Я думаю, что в 8.4 оконные функции могут выполнять эту возможность.

Ответы [ 3 ]

100 голосов
/ 03 августа 2010
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
5 голосов
/ 04 августа 2010

Для версий до 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)

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 03 октября 2018

Просто запрос без * выведет общее количество возвращенных строк.

select from table_name ...;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...