$query = "SELECT DISTINCT nome,citta,regione,tel, COUNT(*) AS tot FROM federal_hotel GROUP BY nome,citta,regione,tel ORDER BY tot";
Hai fatto un minestrone di tutto


Cosa c'è di complicato nella soluzione che ti ho indicato?

Nella tabella temporanea inserisci il risultato di
SELECT DISTINCT * FROM tabella_con_duplicati

se si tratta di duplicati perfetti

altrimenti
SELECT DISTINCT campo_chiave_duplicato FROM tabella_con_duplicati

se il duplicato riguarda solo un campo