SQL Автоматический номер строки с группировкой - PullRequest
0 голосов
/ 23 апреля 2020

Я не уверен, что это вообще возможно сделать, но мне нужно создать номера строк для определенных c столбцов, а не просто row_number (), поскольку мне нужен конкретный шаблон или последовательность c и я не уверен, как справиться с этим. Ниже приведен желаемый результат, который я пытаюсь сделать в 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

1 Ответ

0 голосов
/ 23 апреля 2020

Я интерпретирую это как желание перечислить значения 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.

...