使用Postgres row_number()函数为给定记录ID选择行号



Sry,如果我的问题不是新的,但我找不到答案。我想在postgres表中查找给定id的行号。我有以下邮政查询

"SELECT row_number() over (ORDER BY id DESC) FROM 
(SELECT id, row_number() over () FROM user ORDER BY id DESC) AS sub 
WHERE id = ?1"

?1 - 用户 ID

此查询始终为任何用户 ID 返回 1,但我需要它返回实际的记录行号。例如,如果我的数据库中有 50 条 id 从 1 到 50 的记录,并且我执行的查询 id = 30,我想重新调整 row_number = 30。提前谢谢。

如果我正确关注了您,您可以使用聚合查询:

select count(*) rn
from user
where id <= ?1

这将计算有多少记录具有小于(或等于(给定参数的id

相关内容

  • 没有找到相关文章

最新更新