SQL自动数行与分组

问题描述 投票:0回答:1

我不知道这是否可以做到,但是我需要做的是为特定的列创建行号,而不仅仅是一个简单的row_number(),因为我需要一个特定的模式或序列,并且不确定如何处理这个问题。下面是我在SQL中尝试的结果。

COL_1   COL_2   DESIRED RESULT
AAA     AAA         0
AAA     BBB         1
AAA     BBB         1   
AAA     CCC         2
AAA     DDD         3
ABB     ABB         0
ABB     BBB         1
ABB     CCC         2
ABB     CCC         2
ABB     DDD         3
sql numbers row auto
1个回答
0
投票

我的理解是,我想枚举出 col_2col_1.

如果是这样,你可以使用 dense_rank():

select t.*,
       dense_rank() over (partition by col_1 order by col_2) - 1 as ranking
from t;

这假定您所希望的排序是基于 col_2 栏内 col_1.

© www.soinside.com 2019 - 2024. All rights reserved.