Member 13761666 Ответов: 1

Дубликат удалить в SQL на основе двух разных дат


Я хочу удалить строки на основе двух разных дат old и update (18/2/2018 и 18/2/2019) приходят много раз ...только старые строки даты удаляются ..в таблице нет первичного ключа

Что я уже пробовал:

I want to delete rows on the base of two date old and update (18/2/2018 and 18/2/2019) come many time ...only old date rows delete 

Richard MacCutchan

Пожалуйста, покажите код, который вы используете, мы не можем догадаться, что это такое.

Richard Deeming

В вашем вопросе нет и близко достаточной информации, чтобы кто-то мог вам помочь.

Нажмите на зеленую ссылку "улучшить вопрос" и отредактируйте свой вопрос, чтобы добавить его:

* Соответствующие части структуры вашей таблицы;
* Правила, определяющие строки, которые вы хотите удалить.;
* Пример того, как могут выглядеть данные перед удалением дубликатов; и
* Как будут выглядеть образцы данных после удаления дубликатов.

Если это возможно, создайте Скрипка SQL[^] чтобы продемонстрировать проблему, и разместите ссылку на нее в своем вопросе.

1 Ответов

Рейтинг:
2

OriginalGriff

Во-первых, определите строки, которые вам не нужны:
Используйте GROUP BY, чтобы идентифицировать ваши "идентичные" строки как группы, и выберите только те группы, которые имеют более одной строки.
Затем вы можете идентифицировать только старые строки из этих групп, используя EXCEPT для удаления последнего значения из каждой группы (возврат максимальной даты только из соответствующих групп поможет там) и использовать DELETE с WHERE ... В пункте, чтобы удалить старые вещи.

Создайте демонстрационную таблицу и делайте это поэтапно, пока у вас не будет "полного SQL", используя SELECT вместо DELETE, пока вы не убедитесь, что она работает.

Извините, но из-за отсутствия информации, которой мы располагаем до сих пор, я не могу быть более конкретным.