PostgreSQL 按创建时间正序对排序字段赋值!
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;
效果如图:
知识补充:
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
欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;
1、价值上万元的专业的PPT报告模板。
2、专业案例分析和解读笔记。
3、实用的Excel、Word、PPT技巧。
4、VIP讨论群,共享资源。
5、优惠的会员商品。
6、一次付费只需99元,即可下载本站文章涉及的文件和软件。
共有 0 条评论