Sql 提取其他字段也匹配的重复值
我使用以下查询在我的数据集中查找重复的Sql 提取其他字段也匹配的重复值,sql,google-bigquery,bigquery-standard-sql,Sql,Google Bigquery,Bigquery Standard Sql,我使用以下查询在我的数据集中查找重复的zip值 这确实可以显示任何重复zip值的国家、城市和街道,但我真的希望它只包括重复的,如果它们也有相同的国家、城市和街道,而不仅仅是zip值 SELECT Country, City, Street, zip FROM project.dataset.tablename WHERE zip > 1 AND CAST(zip AS string) IN ( SELECT CAST(zip AS string)
zip
值
这确实可以显示任何重复zip值的国家、城市和街道,但我真的希望它只包括重复的,如果它们也有相同的国家、城市和街道,而不仅仅是zip值
SELECT
Country,
City,
Street,
zip
FROM
project.dataset.tablename
WHERE
zip > 1
AND CAST(zip AS string) IN (
SELECT
CAST(zip AS string)
FROM
project.dataset.tablename
GROUP BY
CAST(zip AS string)
HAVING
COUNT(CAST(zip AS string)) > 1 )
ORDER BY
zip DESC
我想你想要:
SELECT t.*
FROM (SELECT t.*,
COUNT(*) OVER (PARTITION BY zip, country, city, street) as cnt
FROM project.dataset.tablename t
) t
WHERE cnt > 1
ORDER BY zip;
在任何情况下,对于此类问题,窗口函数通常提供最佳解决方案。我想您需要:
SELECT t.*
FROM (SELECT t.*,
COUNT(*) OVER (PARTITION BY zip, country, city, street) as cnt
FROM project.dataset.tablename t
) t
WHERE cnt > 1
ORDER BY zip;
在任何情况下,对于此类问题,窗口函数通常提供最佳解决方案。请提供示例数据和所需结果。请提供示例数据和所需结果。