Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Mesclar e excluir entradas duplicadas


Eu não acho que você pode fazer isso no SQL de forma eficiente. Uma maneira lenta de fazer isso é algo como:
CREATE TEMPORARY TABLE tmp_table (...);
INSERT INTO tmp_table SELECT phone, max(rating) FROM table GROUP BY phone;
TRUNCATE table;
INSERT INTO table SELECT * FROM tmp_table;

Uma maneira melhor seria um procedimento armazenado ou um script externo. Selecione todas as linhas da tabela ordenadas por phone e faça o agrupamento/fusão/exclusão manualmente (itere sobre os resultados, compare com o phone valor da linha anterior, se for diferente, você tem um novo grupo, etc.). Escrever procedimentos armazenados no MySQL é doloroso, então não vou escrever o código para você. :)