Oracle:为重复行创建序列号

Oracle:为重复行创建序列号,oracle,sequence,repeat,Oracle,Sequence,Repeat,我有一个包含3列的表: ID VALUE SEQ 1 100 2 100 3 200 4 200 5 200 每当“value”列中的值在以后的行中重复时,“SEQ”列中的值必须增加1。预期输出为: ID VALUE SEQ 1 100 1 2 100 2 3 200 1 4 200 2 5 200 3 据我所知,在将数据归档到此表时,不能

我有一个包含3列的表:

ID  VALUE   SEQ

1   100     

2   100     

3   200     

4   200     

5   200 
每当“value”列中的值在以后的行中重复时,“SEQ”列中的值必须增加1。预期输出为:

ID  VALUE   SEQ

1   100     1

2   100     2

3   200     1

4   200     2

5   200     3
据我所知,在将数据归档到此表时,不能在insert查询中执行此操作。必须使用后处理完成此操作。我猜可以使用分析函数使用“row_number()并按“,但不知道怎么做。请让我知道,如果可以用更好的方法。任何暗示都将不胜感激。
谢谢。

表中的
SEQ
必须作为永久行存在,还是只有在查询数据时才有用和相关?另一个相关的注意事项是,如果一行被删除或更新,会发生什么情况?您是否希望为所有剩余行重新计算间隙/重复(例如,如果
ID
3
的行的
值更新为
100
),或者
SEQ
,则会得到重复?该序列在表中永久存在。删除或添加行后,触发器负责修改序列。
select id, value, row_number() over (partition by value order by id) as seq
from your_table;