在oracle中排名无序的列

问题描述 投票:2回答:1

我有如下数据,当我通过对id列进行排序来应用density_rank时,我正在根据整数的顺序获得排名,但由于运行查询时显示的记录,我需要进行排名:

来自查询的数据:

Rid   id

8100  161
8101   2
8102   2
8103   2
8104  156

当我通过id对命令应用density_rank时,我会得到

Rid   id    rank

8100  161    3
8101   2     1
8102   2     1
8103   2     1
8104  156    2

但是我的要求是采取以下方式:

Rid   id    rank

8100  161    1
8101   2     2
8102   2     2
8103   2     2
8104  156    3

也使用了row_number,但结果与预期不符,不确定哪种选择是更好的方法。

感谢您的任何帮助。

谢谢

编辑------------------------------

查询使用

Select rid, id,dense_rank() over (order by id) row_num
from table
sql oracle rank analytic-functions
1个回答
0
投票

sum()分析函数获得值之后,可以使用包含(order by rid)lag()聚合

© www.soinside.com 2019 - 2024. All rights reserved.