我有这张桌子
ObjectId| Value
---------------------
1 | A
1 | A
1 | A
5 | B
5 | B
5 | B
按值排序并尝试获取"行号"这种方式(一行由多行组成):
RowNumber | ObjectId | Value
------------------------------------
1 | 1 | A
1 | 1 | A
1 | 1 | A
2 | 5 | B
2 | 5 | B
2 | 5 | B
有什么想法吗?
谢谢
答案 0 :(得分:1)
您正在寻找dense_rank
:
select dense_rank() over (order by Value), ObjectId, Value
from thistable;
您可以包含以下两列:
select dense_rank() over (order by ObjectId, Value), ObjectId, Value
from thistable;
答案 1 :(得分:0)
查看dense_rank()
,这将按顺序继续下一个数字。有example here。
返回结果集分区内的行级别,而不是 排名中的任何差距。行的等级是一加上的数量 排在相关行之前的不同排名。