Mysql
 sql >> Base de données >  >> RDS >> Mysql

renvoie le nombre 0 avec mysql group by

Un GROUP BY a besoin de lignes pour fonctionner, donc si vous n'avez pas de lignes pour une certaine catégorie, vous n'obtiendrez pas le décompte. Considérez la clause where comme limitant les lignes source avant qu'elles ne soient regroupées. La clause where ne fournit pas de liste de catégories à regrouper.

Ce que vous pourriez faire est d'écrire une requête pour sélectionner les catégories (banlieues) puis de faire le décompte dans une sous-requête. (Je ne sais pas à quoi ressemble le support de MySQL pour cela)

Quelque chose comme :

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, excuses)