sql >> Databasteknik >  >> RDS >> Mysql

inklusive saknade (nollantal) rader när du använder GROUP BY

Du kan skapa en tabell med alla timmar och gå med i borden:

CREATE TABLE IF NOT EXISTS `hours` (
  `hour` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `hours` (`hour`) VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9), (10), (11), (12), (13), (14), (15), (16), (17), (18), (19), (20), (21), (22), (23);

SELECT hours.hour, count( SMS_MESSAGES.ID ) 
FROM hours
LEFT JOIN SMS_MESSAGES ON ( hours.hour = HOUR( SMS_MESSAGES.smsDate ) ) 
GROUP BY 1 


  1. Hur man får gårdagens datum i SQLite

  2. När ska man använda MongoDB

  3. Aritmetiskt spillfel vid konvertering av uttryck till datatyp datetime. (medan datum och tid visas..)

  4. MySQL ställer in aktuellt datum i ett DATETIME-fält vid infogning