sql >> データベース >  >> RDS >> Mysql

GROUP BYを使用するときに欠落している(ゼロカウント)行を含む

    すべての時間を含むテーブルを作成し、テーブルを結合することができます:

    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. Oracleストアドプロシージャから結果セットを取得する

    2. SQLデータベースとNoSQLデータベースの違い–MySQLとMongoDBの比較

    3. 行、ページ、テーブルのロックとは何ですか?そして、それらが取得されたとき?

    4. MySql-複数の行の時間差を計算します