Не мисля, че можете да направите това в SQL ефективно. Един бавен начин да го направите е нещо като:
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;
По-добър начин би бил съхранена процедура или външен скрипт. Изберете всички редове от таблицата, подредена по phone
и направете групирането/сливането/изтриването ръчно (прегледайте резултатите, сравнете с phone
стойност от предишния ред, ако е различна, имате нова група и т.н.). Писането на съхранени процедури в MySQL обаче е болезнено, така че няма да пиша кода вместо вас. :)