Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL изберете сума с група по и празни стойности

Можете да използвате това:

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

Използвам RIGHT OUTER JOIN с таблицата, която съдържа всички магазини и всички часове (от 10 до 15).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създаване на празен ред за повтарящ се ред

  2. MySQL изчисляване на седмица между две дати

  3. Как мога да създам инсталатор за уебсайт. PHP mysql

  4. Как да нулирате първичния ключ на таблица?

  5. Защо моята InnoDB таблица има странна стойност за броя на записите?