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

SQL按月份聚合车辆销售数据异常:出现累计求和而非当月值求助

问题修正方案

你的SQL问题出在仅提取了月份数字,未包含年份——不同年份的同一个月份(比如2023年2月和2024年2月)会被合并到同一个month分组中,导致统计结果是所有年份该月的累计销量,而非单月数据。

修正后的SQL示例

方案1:分开统计年份和月份

SELECT 
  EXTRACT(YEAR FROM purchase_date) AS year,
  EXTRACT(MONTH FROM purchase_date) AS month,
  color,
  COUNT(color) AS total
FROM sales_table
GROUP BY year, month, color
ORDER BY year, month, total DESC

方案2:生成年-月格式的字符串(更直观)

根据你使用的数据库选择对应语法:

  • MySQL:
SELECT 
  DATE_FORMAT(purchase_date, '%Y-%m') AS year_month,
  color,
  COUNT(color) AS total
FROM sales_table
GROUP BY year_month, color
ORDER BY year_month, total DESC
  • PostgreSQL/Oracle:
SELECT 
  TO_CHAR(purchase_date, 'YYYY-MM') AS year_month,
  color,
  COUNT(color) AS total
FROM sales_table
GROUP BY year_month, color
ORDER BY year_month, total DESC

两种方案都会将年份+月份作为分组依据,确保每个统计项对应某一年的特定月份,不会出现跨年度累计的问题。

新手学习资源推荐

  • 《SQL必知必会》:入门级经典书籍,用简洁的语言讲解SQL核心概念,覆盖查询、分组、聚合等基础操作,适合快速建立知识框架。
  • 对应数据库官方文档:比如MySQL、PostgreSQL的官方文档,里面有详细的日期函数、分组规则说明,是最权威的参考资料。
  • 实操练习平台:比如LeetCode的SQL专题,通过大量基础题目练习,巩固分组、日期处理等核心技能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 23:42:33