在BigQuery中,可以使用以下查询来计算非常相似的行的累计计数。这些行在除一个或多个字段之外完全相同。
SELECT
COUNT(*) AS CountOfDuplicates,
CONCAT(field1, '-', field2, '-', field3) AS UniqueKey
FROM
`project.dataset.table`
GROUP BY
UniqueKey
HAVING
CountOfDuplicates > 1
在这个查询中,将需要比较的字段列出,并将它们连接成一个唯一的键。然后,使用GROUP BY和COUNT函数来计算具有相同键值的行数,并在HAVING子句中过滤出那些重复次数大于1的键值。
注意:如果被比较的列中包含NULL值,那么在Concatenate过程中需要将其替换成非空值。
SELECT
COUNT(*) AS CountOfDuplicates,
CONCAT(COALESCE(field1, ''), '-', COALESCE(field2, ''), '-', COALESCE(field3, '')) AS UniqueKey
FROM
`project.dataset.table`
GROUP BY
UniqueKey
HAVING
CountOfDuplicates > 1