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
。