postgresql - 使用 postgres row_number() 函数选择给定记录 id 的行号
问题描述
对不起,如果我的问题不是新的,但我找不到答案。我想在 postgres 表中查找给定 id 的行号。我有以下Postgres查询
"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
小于(或等于)给定参数的值。
推荐阅读
- javascript - 如何使用javascript查找块并替换长字符串
- asp.net-mvc - 如何在不使用配置转换的情况下将 Azure webapp 部署到多个环境
- ios - iOS 11:是否可以不显示通知警报(作为横幅),但应该在通知中心添加?
- c# - 不可调用成员 'xyz' 不能像方法一样使用,vb 和 c# 之间的区别
- mysql - 如何解决错误:ERROR 1442 (HY000) Can't update table 'table name' in stored function/trigger?
- redhat - 创建邮箱文件:文件存在
- android - 添加到库后如何在 Android Studio 中使用 JSONLibrary
- python - 仓库库存需求管理
- docker - docker compose vs docker start
- javascript - 节点博客文章标题到 slug url