No creo que puedas hacer esto en SQL de manera eficiente. Una forma lenta de hacerlo es 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;
Una mejor manera sería un procedimiento almacenado o un script externo. Seleccione todas las filas de la tabla ordenadas por phone
y agrupar/fusionar/eliminar manualmente (iterar sobre los resultados, comparar con el phone
valor de la fila anterior, si es diferente tienes un nuevo grupo, etc.). Sin embargo, escribir procedimientos almacenados en MySQL es doloroso, así que no voy a escribir el código por usted. :)