获取所有月份的列表以及当月订购的产品数量,当月无订单时应为'0'-mysql

问题描述 投票:1回答:1

我有一组看起来像这样的数据

Cust Id order date  Ordered Product
1         Jan 2           1
1         Jan 5           2
1         March 14        1      
1        September 9      1
1        December 12      2
2          Jan 5          1
2          Feb 13         2
3         March 12        2
3          April 5        3
3          June 10        2

并且我的输出应该看起来像这样

Cust Id                     order Date                  Order product
  1                           Jan 31                           3
  1                            feb 29                          0
  1                            Mar31                           1
  1                           Apr 30                           0
  1                           May 31                           0
  1                           June 30                          0
  1                           July 31                          0
  1                           Aug 31                           0
  1                           Sept 30                          1
  1                           oct 31                           0
  1                           Nov 30                           0
  1                           Dec 31                           2

我已经知道了>]

1   January 31       3
1   March 31         1
1   September 30     1
1   December 31      2

我的代码是

select customer_id, 
date_format(last_day(order_date), '%M %d') as new_months, 
sum(products_ordered) as total
from amazon_test
where customer_id =1
group by new_months, customer_id;

我目前停留在需要将所有月份和'0'作为输出的部分,因为没有下订单。

我有一组类似于此客户ID订单日期的数据订购产品1 Jan 2 1 1 Jan 5 2 1 March 14 1 1 September 9 1 1 ...

mysql sql date group-by recursive-query
1个回答
1
投票

如果您正在运行MySQL 8.0,一种选择是使用递归查询生成月份,然后将表带left join

© www.soinside.com 2019 - 2024. All rights reserved.