Hai khả năng:
select
group_concat(houses), count(*), city
from
Table1
group by city;
hoặc
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;
- xem chúng hoạt động trực tiếp trong sqlfiddle
Nó không chính xác như đầu ra của bạn, nhưng thông tin trong đó là giống nhau. Cơ sở dữ liệu không có ở đó để định dạng dữ liệu một cách độc đáo. Điều này sẽ được thực hiện trong lớp ứng dụng.