Em resposta ao seu comentário, aqui está uma consulta que funciona no MySQL:
delete YourTable
from YourTable
inner join YourTable yt2
on YourTable.product_id = yt2.product_id
and YourTable.id < yt2.id
Isso só removeria linhas duplicadas. A
inner join
filtrará a última linha de cada produto, mesmo que não existam outras linhas para o mesmo produto. P.S. Se você tentar criar um alias para a tabela após
FROM
, o MySQL exige que você especifique o nome do banco de dados, como:delete <DatabaseName>.yt
from YourTable yt
inner join YourTable yt2
on yt.product_id = yt2.product_id
and yt.id < yt2.id;