如何考虑关系对行进行排名?

问题描述 投票:0回答:1

如何在 PostgreSQL 查询中显示数字 1 1 3 4 5 5 7...

示例

create table test(name,sum_all)as values
 ('a',100)
,('b',95)
,('c',100)
,('d',75)
,('e',55);

想要的结果

名字 总和 订单号
a 100 1
c 100 1
b 95 3
d 75 4
e 55 5

其中“order_number”列运行正常的数字序列,但如果“sum_all”具有相同的值,则数字运行相同,并跳过运行数字到下一个序列。

sql postgresql window-functions
1个回答
2
投票

我认为您正在寻找

rank()
窗口函数:

SELECT name, sum_all,
       rank() OVER (ORDER BY sum_all DESC) AS order_number
FROM tab;
© www.soinside.com 2019 - 2024. All rights reserved.