如何在Oracle中使用count(*)over(order by…)获得连续排名

如何在Oracle中使用count(*)over(order by…)获得连续排名,oracle,count,sql-order-by,Oracle,Count,Sql Order By,我有一张桌子 Item ------ apple apple bean bean cherry cherry cherry 我想创建另一个表,其中包含如下项目的排名 Item ranking ---------------- apple 1 apple 1 bean 2 bean 2 cherry 3 cherry 3 cherry 3 我使用这个语句,可以生成这样的排名 从表a中选择项目,按项目排序 I

我有一张桌子

Item
------   
apple
apple
bean
bean
cherry
cherry
cherry
我想创建另一个表,其中包含如下项目的排名

Item    ranking
----------------   
apple      1
apple      1
bean       2
bean       2
cherry     3 
cherry     3
cherry     3
我使用这个语句,可以生成这样的排名

从表a中选择项目,按项目排序

Item    ranking
----------------   
apple      1
apple      1
bean       3
bean       3
cherry     5 
cherry     5
cherry     5
有没有一种快速的方法来创建所需的连续排名


非常感谢

Try稠密等级功能:

select item, dense_rank() over (order by item) from table a

尝试密集等级功能:

select item, dense_rank() over (order by item) from table a