Как удалить все строки MySQL, кроме одной, упорядочив их по группам и дате?

0

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

Изображение 174551

Я хочу создать хранимую процедуру, которая удалит все записи, но сохранит только последние (имеющие новейшую Last_Warning_Message) для каждого Application_Id и External_Account_Id. Поэтому после выполнения хранимой процедуры таблица должна выглядеть примерно так:

Изображение 174551

Теги:

1 ответ

1
Лучший ответ

В MySQL вы можете использовать join в delete:

delete t
    from thistable t join
         (select Application_Id, External_Account_Id, 
                 max(Last_Warning_Message) as max_Last_Warning_Message
          from thistable t
          group by Application_Id, External_Account_Id
         ) tt
         on t.Application_Id = tt.Application_Id and
            t.External_Account_Id = tt.External_Account_Id and
            t.Last_Warning_Message < tt.max_Last_Warning_Message;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню