【问题标题】: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

【问题讨论】:

    标签: sql oracle duplicates rank


    【解决方案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;
    

    保证每行返回不同的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-23
      • 2012-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      相关资源
      最近更新 更多