如何在 PostgreSQL 中获取按某列排序后的行号?
例如:
例如:
SELECT 30+row_number() AS position, *
FROM users
ORDER BY salary DESC
LIMIT 30
OFFSET 30
我原本以为这个查询会返回像这样的一个列表:
position | name | salary
31 | Joy | 4500
32 | Katie| 4000
33 | Frank| 3500
实际上,我需要将ORDER
子句复制到查询中才能使其正常工作:
SELECT 30+row_number(ORDER BY salary DESC) AS position, *
FROM users
ORDER BY salary DESC
LIMIT 30
OFFSET 30
有没有其他方法可以返回已排序和编号的结果,而不需要复制代码?
我知道可以通过在应用程序本身中递增某个变量来解决这个问题,但我想在数据库层面完成此操作,并返回已编号的结果给应用程序...