GROUP BY potřebuje k práci řádky, takže pokud nemáte žádné řádky pro určitou kategorii, nezískáte počet. Představte si klauzuli where jako omezení zdrojových řádků před jejich seskupením. Klauzule where neposkytuje seznam kategorií, podle kterých se má seskupit.
Co můžete udělat, je napsat dotaz pro výběr kategorií (předměstí) a poté provést počet v dílčím dotazu. (Nejsem si jistý, jaká je podpora MySQL pro toto.)
Něco jako:
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, omlouváme se)