我不知道这是否可以做到,但是我需要做的是为特定的列创建行号,而不仅仅是一个简单的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
我的理解是,我想枚举出 col_2
内 col_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
.