首页 > 解决方案 > 无法获取具有排名的重复数据删除记录

问题描述

我正在尝试使用排名对我的数据集进行重复数据删除,但它没有为第二条记录分配不同的数字。我在这里做错了什么?

with get_rank as (
                    select id, code, rank() over (partition by id order by z.rowid) as ranking
                    from mytable z                          
                 ) 
select * 
from get_rank
where ranking = 1
and id = 72755





        ID CODE    RANKING
---------- ---- ----------
     72755 M             1
     72755 M             1

标签: sqloracleduplicatesrank

解决方案


使用row_number()

with get_rank as (
      select id, code,
             row_number() over (partition by id order by z.rowid) as ranking
     from mytable z                          
    ) 
select * 
from get_rank
where ranking = 1 and id = 72755;

保证为每一行返回不同的值。


推荐阅读