这是我的数据的样子:
| col1 | col2 | denserank | whatiwant |
|------|------|-----------|-----------|
| 1 | 1 | 1 | 1 |
| 2 | 1 | 1 | 1 |
| 3 | 2 | 2 | 2 |
| 4 | 2 | 2 | 2 |
| 5 | 1 | 1 | 3 |
| 6 | 2 | 2 | 4 |
| 7 | 2 | 2 | 4 |
| 8 | 3 | 3 | 5 |
这是我到目前为止的查询:
SELECT col1, col2, DENSE_RANK() OVER (ORDER BY COL2) AS [denserank]
FROM [table1]
ORDER BY [col1] asc
我想要实现的是,每次 col2 的值发生变化时,我的 denserank 列都会增加(即使值本身被重用)。我实际上不能按我有 denserank 的列排序,所以这行不通)。whatiwant
有关示例,请参见列。
有什么办法可以做到这一点DENSE_RANK()
吗?还是有替代方案?