Как удалить дубликаты записей в SQL, которые отличаются в одном поле? - PullRequest
1 голос
/ 12 апреля 2011

Я использую Access 2007.

У меня есть таблица с примерно 20 полями.Одним из этих полей является идентификатор автономного номера, поэтому он уникален.У меня есть много записей в этой таблице, которые отличаются только по идентификатору автономного номера.Я не могу просто удалить те, у которых есть нечетные или четные идентификаторы, потому что некоторые пары дубликатов имеют как шансы, так и оба четных.Любые идеи о том, как выбрать одну запись из каждой пары для удаления?

Я знаю, что это может быть сделано с VBA, но я пока не очень знаком с Access VBA, поэтому я ищу чистоРешение на основе SQL.

Ответы [ 2 ]

3 голосов
/ 12 апреля 2011
DELETE *
FROM yourTable
WHERE id NOT IN
  ( SELECT min(id)
    FROM yourTable
    GROUP BY field2
           , filed3
           , field4
           , etc...      <--- all other fields, except id
  )
2 голосов
/ 12 апреля 2011

удалить те, которые не являются min (id), сгруппированы по другим столбцам, которые означают эквивалентность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...