sql >> Database teknologi >  >> RDS >> Mysql

MySQL vælg sum med gruppe efter og tomme værdier

Du kan bruge dette:

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

Jeg bruger RIGHT OUTER JOIN med tabellen, der indeholder alle butikker og alle timer (fra 10 til 15).




  1. Finder du gratis tidsblokke i mysql og php?

  2. Konverter en række til flere rækker med færre kolonner

  3. Hvad er Greenplum Database? Introduktion til Big Data-databasen

  4. Hvordan adskiller brugen af ​​OR i en MySQL-sætning sig præcist med/uden parentes?