/ / Ako zahrnúť nulu pri počítaní s výrazom MySQL GROUP BY - mysql, aggregate-functions

Ako zahrnúť nulu pri počítaní s výrazom MySQL GROUP BY - mysql, aggregate-functions

Chcel by som spočítať počet udalostí, ku ktorým dochádza každý deň za posledný mesiac, ale aj počítanie nula, keď sa nenašli žiadne udalosti, Je to možné?

Tu je to, čo začínam od ...

SELECT COUNT(*) AS count,
DATE(usage_time_local) AS d
FROM usages
WHERE user_id=136
AND DATE(usage_time_local) >= DATE("2011-04-24")
AND DATE(usage_time_local) <= DATE("2011-05-24")
GROUP BY DATE(usage_time_local);

UPDATE: Vzhľadom na odpoveď som implementoval kódové riešenie inicializáciou slučky a následným vyplnením podrobností.

  $dailyCount = array();
for( $i=1; $i<=30; $i++ ) {
$day = date("Y-m-d",(time()-($i*24*60*60)));
$dailyCount[$day] = 0;
}
foreach( $statement as $row ) {
$dailyCount[$row["d"]] = $row["count"];
}

odpovede:

8 pre odpoveď č. 1

Nemôžete to urobiť so štandardnými SQL dotazmi - snažíte sa zoskupiť dátumy, ktoré v tabuľke neexistujú.

Štandardným riešením je vytvoriť dočasnú tabuľku, ktorá obsahuje rozsah dátumov v postupnom poradí bez medzery, pripojiť sa k tabuľke a urobiť počítanie / agregát ako obvykle.