Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL chọn tổng với các giá trị nhóm theo và trống

Bạn có thể sử dụng cái này:

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

Tôi đang sử dụng RIGHT OUTER JOIN với bảng chứa tất cả các cửa hàng và tất cả các giờ (từ 10 đến 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. Cách đặt thủ công giá trị hạt giống là 1000 trong MySQL

  2. Sự khác biệt giữa biểu tượng nền và báo giá đơn là gì? Tôi có thể sử dụng câu lệnh IF trong một truy vấn như trên không?

  3. Có thể thực thi kiểm tra dữ liệu trong MySQL bằng biểu thức chính quy không

  4. Levenshtein:MySQL + PHP

  5. MySQL | Bạn không thể chỉ định bảng mục tiêu 'a' để cập nhật trong mệnh đề FROM