代码之家  ›  专栏  ›  技术社区  ›  Jamal Khan

如何从Google大查询表中的大数据集中删除重复数据?

  •  1
  • Jamal Khan  · 技术社区  · 1 年前

    我有一个谷歌大查询项目,在这个项目中,我需要删除列中的重复项。做这件事的有效方法是什么?我是谷歌大查询的新手吗?

    1 回复  |  直到 1 年前
        1
  •  2
  •   Farrukh Naveed Anjum    1 年前

    解决这个问题的一种方法是使用 窗口 功能。使用它,我们可以识别正在发生的重复。然后,根据业务逻辑,您可以决定保留哪些记录,删除哪些记录。我在这里假设第一次出现将被保留。

    WITH duplicated_records AS (
        SELECT
            *,
            ROW_NUMBER() OVER (PARTITION BY duplicate_column_name ORDER BY (SELECT NULL)) AS row_number
        FROM
            dataset.table_name
    )
    
    DELETE FROM
        dataset.table_name
    WHERE
        EXISTS (
            SELECT
                1
            FROM
                duplicated_records dr
            WHERE
                dataset.table_name.primary_key = dr.primary_key AND dr.row_number > 1
        );
    

    试试这个,希望你能消除重复的记录。如果问题仍然存在,请随时分享错误日志。