如何在PostgreSQL查询中显示行号?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (135)

我想显示PostgreSQL查询返回的每条记录的观察号。

我认为在8.4中,窗口函数可以执行此函数。

提问于
用户回答回答于
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)

扫码关注云+社区

领取腾讯云代金券