Oracle:为重复行创建序列号

时间:2013-04-30 11:37:25

标签: 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

根据我的理解,在将数据归档到此表时,无法在插入查询中完成。它必须使用后期处理才能完成。我想可以使用“row_number()和partition by”使用分析函数来完成,但不知道该怎么做。如果可以使用更好的方法完成,请告诉我。任何提示将不胜感激。 感谢。

1 个答案:

答案 0 :(得分:3)

select id, value, row_number() over (partition by value order by id) as seq
from your_table;