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

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;

保证每行返回不同的值。

【讨论】:

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

Bigquery 重复数据删除查询无法正常工作

删除一张表中重复数据并保留一条ID最小的记录

获取唯一的或是删除重复的记录

从 BigQuery 中删除重复记录

sql语句 分次(多次)获取不重复记录,请高手赐教!

具有相似数据的重复记录