Как удалить из sqlite3 строки, в которых некоторые столбцы совпадают?

БД: user, status, date, message_id

Как убрать строки, в которых дублируется дата и фамилия, но оставить одну из этих строк (в которой message_id самый большой)?

Для примера: Петров записан три раза на на 2023-01-18, нужно оставить последнюю запись с message_id 1237, а остальные две записи удалить.

Или Смирнов записан на 2023-01-19 два раза, нужно оставить последнюю запись с message_id 1241, а другую запись удалить

Я сделал следующим образом, не получилось:

    def delete_double(self):
        self.cursor.execute("DELETE FROM `rasp` WHERE `date` = `date` AND `user` = `user` AND `message_id` != MAX(`message_id`)")
        return self.conn.commit()

Ошибка sqlite3.OperationalError: misuse of aggregate function MAX()

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


Ответы (0 шт):