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ď č. 1Nemôž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.