sql >> Database teknologi >  >> RDS >> Mysql

returner tæller 0 med mysql-gruppe af

En GROUP BY har brug for rækker at arbejde med, så hvis du ikke har nogen rækker for en bestemt kategori, vil du ikke få optællingen. Tænk på where-sætningen som en begrænsning af kilderækkerne, før de grupperes sammen. Where-sætningen giver ikke en liste over kategorier at gruppere efter.

Hvad du kan gøre er at skrive en forespørgsel for at vælge kategorierne (forstæder) og derefter foretage optællingen i en underforespørgsel. (Jeg er ikke sikker på, hvordan MySQL's support til dette er)

Noget som:

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



  1. Efterfølgende nul

  2. Tjenester med manglende/utilgængelige afhængigheder

  3. hvordan samles to kolonner til én med det eksisterende kolonnenavn i mysql?

  4. Hvordan konverteres menneskelig dato til unix tidsstempel i Mysql?