Non c'ho capito molto e quindi sono andato per tentativi.

Ho provato così:

$query = "SELECT l.localita,count(c.localita_id) as quanti
from fusion_clienti c
inner join fusion_localita l on c.localita_id = l.id
group by c.localita_id
order by quanti desc";
$result = dbquery($query);
if (dbrows($result) != 0) {
while($data = dbarray($result)) {
echo $data['l.localita'].'
';
}
}

A giudicare dal risultato (5
in fila) la query è corretta ma non sò (non credo), se è ok il modo in cui cerco di visualizzarlo.

in realtà le tabelle sono 4

CREATE TABLE `fusion_clienti` (
`id` int(5) unsigned NOT NULL auto_increment,
`cognome` varchar(50) default NULL,
`nome` varchar(50) default NULL,
`ragione_sociale` varchar(50) default NULL,
`via` varchar(50) default NULL,
`numero_civico` varchar(50) default NULL,
`localita_id` int(5) unsigned NOT NULL default '0',
`data_inserimento` varchar(100) default NULL,
`data_ultima_modifica` varchar(100) default NULL,
PRIMARY KEY (`id`)
);

CREATE TABLE `fusion_localita` (
`id` int(5) unsigned NOT NULL auto_increment,
`localita` varchar(100) default NULL,
`comune_id` int(5) unsigned default NULL,
`cap` int(5) unsigned default NULL,
PRIMARY KEY (`id`)
);

CREATE TABLE `fusion_comuni` (
`id` int(5) unsigned NOT NULL auto_increment,
`comune` varchar(100) default NULL,
`provincia_id` int(5) unsigned default NULL,
PRIMARY KEY (`id`)
);

CREATE TABLE `fusion_province` (
`id` int(5) unsigned NOT NULL auto_increment,
`provincia` varchar(100) default NULL,
`provincia_abb` varchar(100) default NULL,
PRIMARY KEY (`id`)
);

In ogni caso proverò a modificarla io se mi aiuti a visualizzare almeno i dati con le due tabelle