无法获取具有排名的重复数据删除记录

Posted

技术标签:

【中文标题】无法获取具有排名的重复数据删除记录【英文标题】:Unable to get dedupe records with rank 【发布时间】:2021-04-18 00:24:56 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

使用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;

保证每行返回不同的值。

【讨论】:

以上是关于无法获取具有排名的重复数据删除记录的主要内容,如果未能解决你的问题,请参考以下文章