Saya tidak berpikir Anda dapat melakukan ini dalam SQL secara efisien. Salah satu cara lambat untuk melakukannya adalah seperti:
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;
Cara yang lebih baik adalah prosedur tersimpan atau skrip eksternal. Pilih semua baris dari tabel yang dipesan oleh phone
dan lakukan pengelompokan/penggabungan/penghapusan secara manual (ulangi hasil, bandingkan dengan phone
nilai dari baris sebelumnya, jika berbeda Anda memiliki grup baru, dll.). Menulis prosedur tersimpan di MySQL itu menyakitkan, jadi saya tidak akan menulis kode untuk Anda. :)