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

Grupper efter skal returnere 0 ved gruppering efter timer. Hvordan gør man dette?

Du skal bruge en tabel, der indeholder 24 timer, og derefter JOIN til det. Hvis du ikke er i stand til at oprette en tabel, kan du oprette den i din forespørgsel. Se denne demo .

SELECT a.hr, IFNULL(b.hourCount, 0) hourCount FROM (SELECT 1 AS hr UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION ALL SELECT 11 UNION ALL SELECT 12 UNION ALL SELECT 13 UNION ALL SELECT 14 UNION ALL SELECT 15 UNION ALL SELECT 16 UNION ALL SELECT 17 UNION ALL SELECT 18 UNION ALL SELECT 19 UNION ALL SELECT 20 UNION ALL SELECT 21 UNION ALL SELECT 22 UNION ALL SELECT 23 UNION ALL SELECT 0) a LEFT JOIN (SELECT COUNT(id) AS hourCount, HOUR(date) AS hr FROM `testing` GROUP BY HOUR(date)) b ON b.hr = a.hr

  1. Laravel-migreringsfejl:Syntaksfejl eller adgangsovertrædelse:1071 Den angivne nøgle var for lang; max nøglelængde er 767 bytes

  2. TRIM() Funktion i Oracle

  3. Sådan overføres parametre til mysql-forespørgselstilbagekald i nodejs

  4. Oracle - update join - ikke nøglebevaret tabel