sql - 更改现有数据的序列号列
问题描述
我有一个表,其中包含几列填充数据。
我对 mrn 列(数字)有疑问,该列用作序列号,并且该值是随机生成的。
我想根据现有列(created_on:带时间戳的日期)重新排列 mrn 列,将 1 赋予最旧的日期,依此类推。
解决方案
您可以为此使用窗口函数:
update the_table
set mrn = t.rn
from (
select primary_key_column,
row_number() over (order by created_on) as rn
from the_table
) t
where t.primary_key_column = the_table.primary_key_column;
推荐阅读
- linux - 一个进程如何立即看到另一个进程的写入?
- macos - Apple 分发与“第 3 方”证书
- jquery - Jquery 中出现关于 animate() 的错误;
- c++ - QT在声明函数指针时给出未定义的引用错误
- java - 如何将@RequestBody 映射到实现构建器模式的Java 对象
- php - php用3-8个符号长度加密输出
- sql - 在 Amazon Redshift 中重写 SQL 逻辑
- javascript - Chart js气泡图气泡内的数字
- reactjs - 更新项目数组时使用 React useState 更新 UI 时出现问题
- sql - 使用模糊连接但具有不同匹配的完全连接