sql >> Databáze >  >> RDS >> Mysql

vrátit počet 0 s mysql group by

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)



  1. Řešení problémů generátoru číselných řad – Část 4

  2. Nasazení MySQL Galera Cluster 4.0 na Amazon AWS EC2

  3. Mýtus, že DROP a TRUNCATE TABLE nejsou protokolované

  4. Použití MySQL s Oracle Heterogeneous Services