удалить дубликаты с конкретными критериями SQL - PullRequest
0 голосов
/ 15 июня 2011

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

У меня есть таблица с именем table1

enter image description here

. По этой таблице я могу сказать, что при первом сканировании каталога у меня было два файла A и BВ следующий раз, когда я сканировал каталог, я знаю, что добавил файл C и изменил файл A, посмотрев на таблицу.обратите внимание, что файл A имеет другой DateModified, поэтому я могу сказать, что он был изменен.Наконец, при моем последнем сканировании я знаю, что файл X был создан, а также файл B был изменен.Файлы A и C остались прежними.

После создания большого количества сканов есть несколько файлов, которые повторяются.Если у них другой DateModified, я не хочу удалять дубликаты, потому что я хочу отслеживать изменения в этом каталоге.Более того, при удалении дубликатов я хочу остаться с нижним DateInserted, чтобы я мог знать, когда он был изменен.

Другими словами, я хочу создать запрос, в котором я могу удалить FileID 6, поскольку FileID 3 содержит тот же путь и тот же DateModified.Я также хотел бы удалить FileID 4, потому что fileID 2 содержит две одинаковые записи.И, наконец, я хотел бы удалить fileID 5 по той же причине.Как я мог построить этот запрос?

РЕДАКТИРОВАТЬ

Я просто добавляю запрос, над которым работал, в надежде, что он поможет.

enter image description here

с этим запросом я знаю, что это файлы, которые повторяются на основе критериев, которые мне нужны.Я не знаю, как пойти оттуда и удалить дубликаты с более высокой датой вставки, основанные на этих результатах.Надеюсь, это поможет

1 Ответ

1 голос
/ 15 июня 2011

Если я правильно понимаю, вам нужны уникальные записи, в которых уникальная запись квалифицируется как отдельная комбинация Path & DateModified, а при возникновении дубликатов вы хотите вернуть самую раннюю запись.

Надеемся, что этот запрос поможет: ВЫБЕРИТЕ МИН (FileID) КАК FileID, Путь, дата, измененная, дата вставлена ​​ИЗ таблицы1, Путь GROUP BY, Дата изменена

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