You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL SUM函数计算异常解决:椅子月度销售额统计问题

修复月度销售额视图的分组错误

你的代码出现问题的核心原因是GROUP BY子句的分组字段错误:你将明细级别的字段(quantity、unit_price、sale_date)和数据表中不存在的article字段加入了分组条件,这会让数据库按每一条单独的销售记录进行分组,而非按年月维度汇总,导致SUM函数无法正确累加同一年月的销售额。

修复后的代码

CREATE VIEW MONTHLY_SALES(product, monthly_sales, month, year) AS (
    SELECT 
        product, 
        SUM(quantity * unit_price) AS monthly_sales,
        TO_CHAR(sale_date, 'Month') AS month, 
        EXTRACT(YEAR FROM sale_date) AS year
    FROM sales
    WHERE 
        sale_date BETWEEN '2000-01-01' AND '2010-12-31' 
        AND product = 'CHAIR'
    GROUP BY product, TO_CHAR(sale_date, 'Month'), EXTRACT(YEAR FROM sale_date)
);

SELECT * FROM MONTHLY_SALES;

关键修改说明

  • 仅保留需要分组的维度:product(虽然已通过WHERE筛选固定值,但保留可提升代码严谨性)、格式化后的月份、提取的年份,确保每个唯一的「年月」组合作为一个独立分组。
  • 移除了原代码中破坏分组逻辑的明细字段(quantity、unit_price、sale_date)和无效字段article,让SUM(quantity * unit_price)能够正确累加同一分组内的所有销售额。

验证结果

使用你提供的示例数据执行修复后的代码,会得到预期输出:

product | monthly_sales | month   | year
Chair     160             January   2001
Chair     200             February  2001

内容的提问来源于stack exchange,提问作者ENV

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 23:01:53