Jag tror inte att du kan göra detta i SQL effektivt. Ett långsamt sätt att göra det på är något i stil med:
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;
Ett bättre sätt skulle vara en lagrad procedur eller ett externt skript. Välj alla rader i tabellen sorterade efter phone
och gör grupperingen/sammanfogningen/raderingen manuellt (iterera över resultaten, jämför med phone
värde från föregående rad, om det är annorlunda har du en ny grupp, etc.). Att skriva lagrade procedurer i MySQL är dock smärtsamt, så jag tänker inte skriva koden åt dig. :)