SQL: 如何给相同值的行分配相同的行号?

SQL: How to assign the same line number to lines with the same value?

我在 SQL 服务器中有一个如下所示的 table。我使用 ROW_NUMBER 分区函数达到行号值。但这不是我想要的结果

RowNumber Value
1 A
2 A
3 A
1 B
2 B
1 C
1 D

我想要这个table

RowNumber Value
1 A
1 A
1 A
2 B
2 B
3 C
4 D

怎么做,有功能建议吗?

使用DENSE_RANK:

SELECT DENSE_RANK() OVER (ORDER BY Value) RowNumber, Value
FROM yourTable
ORDER BY Value;

使用DENSE_RANK代替ROW_NUMBER

SELECT DENSE_RANK() OVER (ORDER BY VALUE), VALUE
FROM TABLE