首页 > 解决方案 > 如何重新排列和更新 postgresql 中的数字序列?

问题描述

在我的表中,每一行都可以保存一个整数,我们称之为整数列height。例如,此列中的值可以是:[5, 4, 0, 1, 9] 我需要将示例中的这个序列重新排列为:[0, 1, 4, 5, 9]然后我希望这些值变成这样:[1, 2, 3, 4, 5]

我试图用 SQL 编写的想法是在第一次获得最小值并计算有多少值小于它。

我怎样才能把这个想法写/翻译成一个 SQL 查询?

标签: sqlpostgresql

解决方案


你似乎想要一个排名:

select t.*, row_number() over (order by height) as height_seqnum
from t
order by height_seqnum;

推荐阅读