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

MySQLはgroupbyと空の値で合計を選択します

    これを使用できます:

    SELECT b.store_id, b.group_hour, IFNULL(sales_sum, 0) AS sales_sum
    FROM 
    (
     SELECT store_id, HOUR(sales_date) as group_hour, sum(sales_amount) as sales_sum 
     FROM sales 
     GROUP BY store_id, group_hour
    ) a
    RIGHT OUTER JOIN 
    (
      SELECT *
      FROM
      (
       SELECT DISTINCT store_id
       FROM sales
      ) all_stores
      CROSS JOIN
      (
       SELECT 10 as group_hour
       UNION ALL
       SELECT 11
       UNION ALL
       SELECT 12
       UNION ALL
       SELECT 13
       UNION ALL
       SELECT 14
       UNION ALL
       SELECT 15
      ) all_hours
    ) b
    ON a.store_id = b.store_id AND a.group_hour = b.group_hour
    ORDER BY 1, 2
    

    すべての店舗とすべての時間(10から15まで)を含むテーブルでRIGHTOUTERJOINを使用しています。




    1. SQL Serverの左パディング– 3 LPAD()相当

    2. MySQLで重複レコードを検索する

    3. SQLclを使用する場合、Oracleクエリ結果をHTMLファイルにエクスポートする

    4. MySQL 4(5ではない)でコンマ区切りの列を合計する