Mysql
 sql >> Database >  >> RDS >> Mysql

Unisci e quindi Elimina voci duplicate

Non penso che tu possa farlo in SQL in modo efficiente. Un modo lento per farlo è qualcosa del tipo:

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;

Un modo migliore sarebbe una procedura memorizzata o uno script esterno. Seleziona tutte le righe dalla tabella ordinate per phone ed esegui manualmente il raggruppamento/unione/eliminazione (ripeti i risultati, confronta con il phone valore dalla riga precedente, se è diverso hai un nuovo gruppo, ecc.). La scrittura di stored procedure in MySQL è dolorosa, quindi non scriverò il codice per te. :)