Ik denk niet dat je dit in SQL efficiënt kunt doen. Een langzame manier om het te doen is zoiets als:
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;
Een betere manier zou een opgeslagen procedure of een extern script zijn. Selecteer alle rijen uit de tabel gerangschikt op phone
en doe het groeperen/samenvoegen/verwijderen handmatig (herhaal de resultaten, vergelijk met de phone
waarde uit de vorige rij, als deze anders is, hebt u een nieuwe groep, enz.). Het schrijven van opgeslagen procedures in MySQL is echter pijnlijk, dus ik ga de code niet voor je schrijven. :)