在没有唯一列的情况下,可以通过使用ROW_NUMBER和PARTITION BY语句来为每个行创建一个唯一的行号,然后根据行号进行筛选和去重。以下是示例代码:
WITH
deduped AS (
SELECT
*,
ROW_NUMBER() OVER(PARTITION BY col1, col2, col3 ORDER BY col4) as row_num
FROM
project.dataset.table
)
SELECT
*
FROM
deduped
WHERE
row_num = 1;
在这个例子中,假设表中没有唯一列。我们使用ROW_NUMBER()函数和PARTITION BY子句来为每一行创建唯一的行号,其中PARTITION BY子句定义了唯一性的属性。最后,在输出中仅保留唯一行(即row_num = 1)。