sql - 如何重新排列和更新 postgresql 中的数字序列?
问题描述
在我的表中,每一行都可以保存一个整数,我们称之为整数列height
。例如,此列中的值可以是:[5, 4, 0, 1, 9]
我需要将示例中的这个序列重新排列为:[0, 1, 4, 5, 9]
然后我希望这些值变成这样:[1, 2, 3, 4, 5]
。
我试图用 SQL 编写的想法是在第一次获得最小值并计算有多少值小于它。
我怎样才能把这个想法写/翻译成一个 SQL 查询?
解决方案
你似乎想要一个排名:
select t.*, row_number() over (order by height) as height_seqnum
from t
order by height_seqnum;
推荐阅读
- flutter - 如何在 Widget Build 方法中回调函数?
- r - R函数不返回语料库
- swift - 创建调度队列时自动释放频率和目标是什么?
- c++ - 如何使用派生类类型数据初始化 std::shared_ptr?
- java - 我可以在 java Spring 服务器中设置运行时间吗?
- laravel - Laravel 5.8 @if(Auth::user() && Auth::user()->role_id == 2) 返回错误
- c++ - 如何解决我的链表读取不一致的问题?
- python-3.x - 在 Python 3 中写入同一行的文件
- c# - 在视图中将 URL 字符串更改为 C# ASP.NET MVC 中的超链接
- bootstrap-4 - 在 Bootstrap 模态中提交表单将不会打开第二个模态