Извлечение дубликатов значений, где другие поля также совпадают - PullRequest
0 голосов
/ 15 октября 2018

Я использую следующий запрос, чтобы найти дубликаты 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

1 Ответ

0 голосов
/ 15 октября 2018

Я думаю, вы хотите:

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;

В любом случае, для этого типа вопроса оконные функции обычно обеспечивают лучшее решение.

...