对于一个表的字段,首先同内容分组,组内抽取从1开始的连续编码,然后一组为单位再进行从1开始连续编码。
例如,字段Item有以下数据
得到以下结果
SQL为
例如,字段Item有以下数据
Item
A
A
A
B
B
C
D
D
得到以下结果
Item GrpId ItmId
A 1 1
A 1 2
A 1 3
B 2 1
B 2 2
C 3 1
D 4 1
D 4 2
SQL为
SELECT
Item,
dense_rank() over(order by Item) as GrpId,
row_number() over(partition by Item order by Item) as ItmId
FROM
Test
Order By
Item