对于数据:
20 50 50 60 70
如果我用军衔
1 2 2 4 5
如果我使用密级我得到
1 2 2 3 4
我的申请需要:
1 3 3 4 5
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
1条答案
按热度按时间1rhkuytd1#
我想你想要:
实际上,这将更简单的措辞,只是一个窗口计数:
db小提琴演示: