分组抽取连续num

对于一个表的字段,首先同内容分组,组内抽取从1开始的连续编码,然后一组为单位再进行从1开始连续编码。
例如,字段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

你可能感兴趣的:(数据库)