Zwei Möglichkeiten:
select
group_concat(houses), count(*), city
from
Table1
group by city;
oder
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;
- sehen Sie sie live in einem sqlfiddle arbeiten
Es ist nicht genau wie Ihre Ausgabe, aber die darin enthaltenen Informationen sind dieselben. Datenbanken sind nicht dazu da, die Daten schön zu formatieren. Dies sollte in der Anwendungsschicht erfolgen.