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
我在 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