Dua kemungkinan:
select
group_concat(houses), count(*), city
from
Table1
group by city;
atau
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;
- lihat mereka bekerja langsung di sqlfiddle
Ini tidak persis seperti output Anda, tetapi informasi di dalamnya sama. Basis data tidak ada untuk memformat data dengan baik. Ini harus dilakukan di lapisan aplikasi.