Как удалить дублируемую запись на основе узкого временного интервала? Каждая запись имеет уникальную дату (дата дампа данных). Существует общий серийный номер и номер статуса между дубликатами - я хочу только вытащить один дубликат за день до или позже - и быть ясным: в будущем я могу записать другую версию той же записи, содержащую тот же серийный/статус номер комбинация, который я бы хочу сохранить - (другие аспекты записи будут изменены). Моя таблица архивов гарантирует, что нет повторяющихся записей на основе уникальной даты данных и серийного номера ... но я не могу понять, как справиться с той же самой записью, которая появляется на следующий день, и не имея возможности просто группировать по номеру статуса, поскольку этот номер может отображаться много раз в течение года, и мне нужно их хранить.Удалить дубликаты записей 1-й день
Это моя теоретическая попытка, которая будет работать ежедневно:
DELETE `t`
FROM `archive_table` as `t` JOIN
(SELECT `data-dump-date`, COUNT(`serial-number`)as `count` FROM
`archive_table`
WHERE
`data-dump-date` >= `todays-date` -1
GROUP BY `serial-number`,`status-number` HAVING COUNT(*) > 1) as `g`
ON `t`.`data-dump-date` = `g`.`data-dump-date`
AND `t`.`serial-number` = `g`.`serial-number`
Это не ответ на ваш вопрос, но одна вещь, которую вы могли бы сделать, это не допустить, чтобы дубликаты были вставлены путем проверки ваших критериев при их вставке ... –
Это хороший момент, я не заглянул в как я могу написать запрос. – photocode