编写sql统计出每个商品截至每个月的累积销量,但是运行报错,求解答

题目:

img

运行代码及报错

img


创建表

img

检查了语句及字段,看不出什么问题,麻烦帮忙指点,谢谢

这个SQL前面三个字段的内容不难写出来,关键是后面的那个month_all比较难写。你这里用了partition的预发,这个语法是MySQL8以上才有的,你先看看SELECT VERSION();是不是8以上,如果不是,可以使用我的这个语句试试

SELECT 
    t1.product_id, 
    t1.month, 
    t1.month_total,
    (SELECT SUM(t2.quantity) 
     FROM sale_info t2 
     WHERE t2.product_id = t1.product_id AND DATE_FORMAT(t2.sale_date, '%Y-%m') <= t1.month) AS month_all
FROM 
    (SELECT 
         product_id, 
         DATE_FORMAT(sale_date, '%Y-%m') AS month, 
         SUM(quantity) AS month_total
     FROM sale_info
     GROUP BY product_id, DATE_FORMAT(sale_date, '%Y-%m')) AS t1
ORDER BY t1.product_id, t1.month;