Twee mogelijkheden:
select
group_concat(houses), count(*), city
from
Table1
group by city;
of
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;
- zie ze live aan het werk in een sqlfiddle
Het is niet precies zoals uw output, maar de informatie erin is hetzelfde. Databases zijn er niet om de gegevens netjes op te maken. Dit moet in de applicatielaag worden gedaan.