Deux possibilités :
select
group_concat(houses), count(*), city
from
Table1
group by city;
ou
select a.houses, a.city, noofhouses
from Table1 a
inner join (
select
count(*) as noofhouses, city
from Table1
group by city
) b on a.city = b.city
order by a.city, noofhouses desc, a.houses;
- les voir travailler en direct dans un sqlfiddle
Ce n'est pas exactement comme votre sortie, mais les informations qu'il contient sont les mêmes. Les bases de données ne sont pas là pour bien formater les données. Cela devrait être fait dans la couche d'application.