问题描述
大家好,
我有所有记录都通用的列ord,然后是person_no。这可以重复。
我有一个名为flag的列,它是一个序列。我正在尝试填充一个新列 (NEW_FLAG),该列基本上将根据填充的顺序对person_no进行排名 (基于标志列)
Op应该是这样的
订单人员 _ 无标志NEW_FLAG
2999362 21065699 1 1
2999362 21065699 2 1
2999362 12158176 3 2
2999362 10750089 4 3
2999362 5475332 5 4
2999362 11150508 6 5
2999362 5475332 7 4
2999362 3807718 8 6
2999362 3991003 9 7
2999362 3754090 10 8
你能帮忙吗
我有所有记录都通用的列ord,然后是person_no。这可以重复。
我有一个名为flag的列,它是一个序列。我正在尝试填充一个新列 (NEW_FLAG),该列基本上将根据填充的顺序对person_no进行排名 (基于标志列)
Op应该是这样的
订单人员 _ 无标志NEW_FLAG
2999362 21065699 1 1
2999362 21065699 2 1
2999362 12158176 3 2
2999362 10750089 4 3
2999362 5475332 5 4
2999362 11150508 6 5
2999362 5475332 7 4
2999362 3807718 8 6
2999362 3991003 9 7
2999362 3754090 10 8
你能帮忙吗
专家解答
这里有一种方法来解决这个问题:
-使用first_value查找每个人的第一个标志值
-使用这个计算的第一个标志来排名 () 的结果:
-使用first_value查找每个人的第一个标志值
-使用这个计算的第一个标志来排名 () 的结果:
create table test_table ( ord number, person_no number, flag number ); insert into test_table values (2999362,3754090,10); insert into test_table values (2999362,3807718,8); insert into test_table values (2999362,3991003,9); insert into test_table values (2999362,5475332,7); insert into test_table values (2999362,5475332,5); insert into test_table values (2999362 ,10750089,4); insert into test_table values (2999362, 11150508,6); insert into test_table values (2999362, 12158176,3); insert into test_table values (2999362, 21065699,1); insert into test_table values (2999362, 21065699,2); commit; with first_flags as ( select t.*, first_value ( flag ) over ( partition by person_no order by flag ) fv_flag from test_table t ) select ord, person_no, rank () over ( order by fv_flag ) rk from first_flags order by flag; ORD PERSON_NO RK 2999362 21065699 1 2999362 21065699 1 2999362 12158176 3 2999362 10750089 4 2999362 5475332 5 2999362 11150508 7 2999362 5475332 5 2999362 3807718 8 2999362 3991003 9 2999362 3754090 10复制
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
783次阅读
2025-04-18 14:18:38
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
661次阅读
2025-04-15 17:24:06
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
590次阅读
2025-04-20 10:07:02
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
544次阅读
2025-04-22 00:13:51
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
529次阅读
2025-04-17 17:02:24
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
509次阅读
2025-04-22 00:20:37
一页概览:Oracle GoldenGate
甲骨文云技术
493次阅读
2025-04-30 12:17:56
火焰图--分析复杂SQL执行计划的利器
听见风的声音
468次阅读
2025-04-17 09:30:30
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
382次阅读
2025-04-15 14:48:05
OR+DBLINK的关联SQL优化思路
布衣
380次阅读
2025-05-05 19:28:36