如何在 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”具有相同的值,则数字运行相同,并跳过运行数字到下一个序列。
我认为您正在寻找
rank()
窗口函数:
SELECT name, sum_all,
rank() OVER (ORDER BY sum_all DESC) AS order_number
FROM tab;