[英]Oracle Row Number Within Sequence of Same Values in Column
所以我有這個原始數據:
TYPE_DESCRIPTION TYPE_ORDER
PROFILING 1
RIBBONNING 2
RIBBONNING 3
EXTRUSION 4
SPIRALING 5
SPIRALING 6
RIBBONNING 7
ARMOURING 8
RIBBONNING 9
RIBBONNING 10
ARMOURING 11
RIBBONNING 12
RIBBONNING 13
RIBBONNING 14
RIBBONNING 15
RIBBONNING 16
RIBBONNING 17
RIBBONNING 18
RIBBONNING 19
EXTRUSION 20
我要從分組TYPE_DESCRIPTION中獲取行號,但是考慮到TYPE_ORDER字段,它必須在組更改時重置計數。 我期望的結果基本上是:
TYPE_DESCRIPTION TYPE_ORDER ROW_NO_BY_GROUP
PROFILING 1 1
RIBBONNING 2 1
RIBBONNING 3 2
EXTRUSION 4 1
SPIRALING 5 1
SPIRALING 6 2
RIBBONNING 7 1
ARMOURING 8 1
RIBBONNING 9 1
RIBBONNING 10 2
ARMOURING 11 1
RIBBONNING 12 1
RIBBONNING 13 2
RIBBONNING 14 3
RIBBONNING 15 4
RIBBONNING 16 5
RIBBONNING 17 6
RIBBONNING 18 7
RIBBONNING 19 8
EXTRUSION 20 1
請注意,值RIBBONNING在多行中重復,但是每次TYPE_DESCRIPTION更改時,ROW_NUMBER都會重置。
謝謝..
您可以使用Tabibitosan方法形成連續的組:
select type_description, type_order,
row_number() over (order by type_order)
- row_number() over (partition by type_description order by type_order) as group_no
from your_table;
TYPE_DESCRIPTION TYPE_ORDER GROUP_NO
---------------- ---------- ----------
PROFILING 1 0
RIBBONNING 2 1
RIBBONNING 3 1
EXTRUSION 4 3
SPIRALING 5 4
SPIRALING 6 4
RIBBONNING 7 4
ARMOURING 8 7
RIBBONNING 9 5
RIBBONNING 10 5
ARMOURING 11 9
RIBBONNING 12 6
RIBBONNING 13 6
RIBBONNING 14 6
RIBBONNING 15 6
RIBBONNING 16 6
RIBBONNING 17 6
RIBBONNING 18 6
RIBBONNING 19 6
EXTRUSION 20 18
然后獲取這些組中的行號:
select type_description, type_order,
row_number() over (partition by type_description, group_no
order by type_order) as row_no_by_group
from (
select type_description, type_order,
row_number() over (order by type_order)
- row_number() over (partition by type_description order by type_order) group_no
from your_table
)
order by type_order;
TYPE_DESCRIPTION TYPE_ORDER ROW_NO_BY_GROUP
---------------- ---------- ---------------
PROFILING 1 1
RIBBONNING 2 1
RIBBONNING 3 2
EXTRUSION 4 1
SPIRALING 5 1
SPIRALING 6 2
RIBBONNING 7 1
ARMOURING 8 1
RIBBONNING 9 1
RIBBONNING 10 2
ARMOURING 11 1
RIBBONNING 12 1
RIBBONNING 13 2
RIBBONNING 14 3
RIBBONNING 15 4
RIBBONNING 16 5
RIBBONNING 17 6
RIBBONNING 18 7
RIBBONNING 19 8
EXTRUSION 20 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.