【问题标题】:Delete Duplicate Record From BigQuery从 BigQuery 中删除重复记录
【发布时间】:2021-06-06 14:06:15
【问题描述】:

我有一个具有列 ID 的表,它定义了唯一的记录,所有具有相同 ID 的行都是重复的,我想删除重复的行并只保留唯一的 ID

ID Data
1   2
1   2
2   3
2   3

删除后(BigQuery 表中的我的数据)

ID Data
1   2
2   3

我可以创建一个只有唯一记录的新表,但有什么方法可以更新现有表,即从表中删除重复记录。

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    考虑下面(所有具有相同 ID 的行都是重复的)

    select as value any_value(t)
    from `project.dataset.table` t
    group by id    
    

    有输出

    如果重复的定义是-所有字段都重复的所有行-请考虑以下

    select as value any_value(t)
    from `project.dataset.table` t
    group by format('%t', t)
    

    以下是如何将其与 DDL 一起使用的示例:

    create or replace table `project.dataset.table` as 
    select * from ( 
      select as value any_value(t)
      from `project.dataset.table` t
      group by format('%t', t)
    );
    

    【讨论】:

    • 我想更新现有表并删除重复项,该怎么做?
    • 您可以使用create or replace table your_table as ... 和上面提供的选择 - 对吧?
    • 但这可能是昂贵的操作,我们可以只针对重复项吗?
    • 与删除相同的成本-但最重要的是,我怀疑在您的情况下删除是否有用!还要记住 - BQ 是一个柱状的,所以成本不是根据行数计算的,而是根据所触及的列数计算的
    • 能否举个同表删除的例子对我有用
    猜你喜欢
    • 1970-01-01
    • 2016-01-07
    • 1970-01-01
    • 2012-09-03
    • 2019-11-25
    • 1970-01-01
    • 2017-05-01
    • 1970-01-01
    相关资源
    最近更新 更多