PostgreSQL 按创建时间正序对排序字段赋值!

  • A+
所属分类:SQL技巧

 

PostgreSQL 按创建时间正序对排序字段赋值!

 

需求实现:

 

给某表新增一个sort_no字段,表中的历史数据要根据创建时间从1递增+1来设置sort_no的值

 

解决方案:

 

1、使用ROW_NUMBER()为按创建时间排序后返回的记录生成行编号

2、根据主键id赋值 行编号给对应的sort_no

WITH tmp as( SELECT ROW_NUMBER() OVER() as rownum, pk_id as tid FROM 某表) UPDATE 某表 SET sort_no = rownum FROM tmp WHERE pk_id = tmp.tid;

效果如图:

PostgreSQL 按创建时间正序对排序字段赋值!

 

知识补充:

 

1、ROW_NUMBER() 语法

ROW_NUMBER() OVER( [ PRITITION BY col1] ORDER BY col2[ DESC ] )

2、WITH查询是

PostgreSQL的高级特性之一,这一特性通常被称为

CTE(Common Table Expressions),

WITH查询在复杂的查询语句中定义辅助语句(可以理解成查询语句中的临时表)。

 

学习资料见知识星球。

以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。

快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利​​​​!

更多技巧, www.excelbook.cn

欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;

PostgreSQL 按创建时间正序对排序字段赋值!

你将获得:

1、价值上万元的专业的PPT报告模板。

2、专业案例分析和解读笔记。

3、实用的Excel、Word、PPT技巧。

4、VIP讨论群,共享资源。

5、优惠的会员商品。

6、一次付费只需99元,即可下载本站文章涉及的文件和软件。

 

  • 我的微信
  • weinxin
  • 我的知识星球
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: