Per visualizzare rapidamente le righe duplicate è possibile eseguire una singola query semplice
Qui sto interrogando la tabella e elencando tutte le righe duplicate con lo stesso user_id, market_place e sku:
select user_id, market_place,sku, count(id)as totals from sku_analytics group by user_id, market_place,sku having count(id)>1;
Per eliminare la riga duplicata devi decidere quale riga vuoi eliminare. Ad esempio quello con ID inferiore (di solito più vecchio) o forse altre informazioni sulla data. Nel mio caso, desidero solo eliminare l'id inferiore poiché l'id più recente è costituito dalle informazioni più recenti.
Per prima cosa controlla se verranno eliminati i record corretti. Qui sto selezionando il record tra i duplicati che verranno eliminati (per ID univoco).
select a.user_id, a.market_place,a.sku from sku_analytics a inner join sku_analytics b where a.id< b.id and a.user_id= b.user_id and a.market_place= b.market_place and a.sku = b.sku;
Quindi eseguo la query di eliminazione per eliminare i duplicati:
delete a from sku_analytics a inner join sku_analytics b where a.id< b.id and a.user_id= b.user_id and a.market_place= b.market_place and a.sku = b.sku;
Backup, ricontrolla, verifica, verifica backup ed esegui.