Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL pilih jumlah dengan grup menurut dan nilai kosong

Anda dapat menggunakan ini:

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

Saya menggunakan RIGHT OUTER JOIN dengan tabel yang berisi semua toko dan semua jam (dari 10 hingga 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. Hibah pada beberapa database. MySQL

  2. bagaimana cara menjalankan skrip python dari kueri mysql?

  3. SQL - Bagaimana cara mengubah posisi?

  4. Menambahkan awalan statis pada nomor yang bertambah

  5. Urutan Alfanumerik Oleh di Mysql