můžete to vyřešit vytvořením tabulky, která bude obsahovat 24 hodnot pro hodiny (00:00, 01:00 atd.) a provést levé (nebo pravé) spojení s ní a vaší tabulkou povolující nuly, takže budete mít všech 24 řádků, i když vaše tabulka obsahuje vůbec 0 řádků, pak by seskupení podle mělo fungovat dobře.
Nezapomeňte zkrátit vše kromě hodiny z vašeho stolu, když provádíte připojení, takže výsledkem funkce můžete zavolat a provést join on
může být rovna hodnotě této tabulky nápovědy.
můžete použít následující dotaz k provedení úlohy po naplnění tabulky testtime 24 hodnotami test_time
select test_time,sum(sign(coalesce(idFromYourTable,0))) as count from testtime
left join yourTable on test_time=hour(yourTableTime)
group by test_time
To poskytne 0 jako počet, pokud neexistují žádné hodnoty odpovídající řádku z testovací tabulky, zatímco funkce count(*) poskytne 24 řádků s 1s namísto 0, i když je vaše tabulka prázdná, také pokud je v tabulce pouze 1 řádek. není možné rozlišit rozdíl mezi 0 řádky, protože výsledky budou vypadat stejně pro následující 2 různé řádky
protože oba poskytují stejný počet výsledných řádků rovný 1, zatímco technika součtu zachází s těmito řádky odlišně