sql等级,如果相等则更高?

nkcskrwz  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(270)

对于数据:

20
50
50
60
70

如果我用军衔

1
2
2
4
5

如果我使用密级我得到

1
2
2
3
4

我的申请需要:

1
3
3
4
5
1rhkuytd

1rhkuytd1#

我想你想要:

rank() over(order by val) + count(*) over(partition by val) - 1

实际上,这将更简单的措辞,只是一个窗口计数:

count(*) over(order by val)

db小提琴演示:

select val, count(*) over(order by val) rn
from (values (20), (50), (50), (60), (70)) as t(val)
order by val
val | rn
--: | -:
 20 |  1
 50 |  3
 50 |  3
 60 |  4
 70 |  5

相关问题