GROUP BY cần các hàng để làm việc, vì vậy nếu bạn không có hàng nào cho một danh mục nhất định, bạn sẽ không nhận được số lượng. Hãy coi mệnh đề where giống như việc giới hạn các hàng nguồn trước khi chúng được nhóm lại với nhau. Mệnh đề where không cung cấp danh sách các danh mục để nhóm theo.
Những gì bạn có thể làm là viết một truy vấn để chọn các danh mục (vùng ngoại ô) sau đó thực hiện đếm trong một truy vấn con. (Tôi không chắc hỗ trợ của MySQL cho việc này như thế nào)
Một cái gì đó như:
SELECT
s.suburb_id,
(select count(*) from suburb_data d where d.suburb_id = s.suburb_id) as total
FROM
suburb_table s
WHERE
s.suburb_id in (1,2,3,4)
(MSSQL, xin lỗi)