我想要一张这样的客户订单表:
customer_id | order_date | amount
0 | 2020-03-01 | 10.00
0 | 2020-03-02 | 2.00
1 | 2020-03-02 | 5.00
1 | 2020-03-02 | 1.00
2 | 2020-03-08 | 2.00
1 | 2020-03-09 | 1.00
0 | 2020-03-10 | 1.00
0 | 2020-03-16 | 1.00
并创建一个表,按周计算累计运行总量,从最早的日期(2020-03-01、2020-03-08等)开始按7天对周进行分段。比如:
customer_id | week_0 | week_1 | week_2
0 | 12.00 | 13.00 | 14.00
1 | 6.00 | 7.00 | 7.00
2 | 0.00 | 2.00 | 2.00
谢谢你的帮助!
2条答案
按热度按时间rjjhvcjd1#
您可以使用聚合和窗口函数(这需要mysql 8.0)。将周放在行中比放在列中更容易和更具可伸缩性:
您也可以将此数据透视到列-但您需要枚举周数:
50few1ms2#
我认为您需要条件聚合——在计算第一个订单日期之后: