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

MySQL中按月统计首次支付总金额的分组求和异常问题

问题原因与解决方案

你的SQL未按月合并求和的核心问题是分组依据错误:原语句用inited_time分组,而每个inited_time都是唯一的时间戳,导致每条数据单独成组,SUM(first_payment_price)自然只会返回当前行的金额,无法实现按月聚合。

修正后的SQL(按月聚合,不区分年份)

SELECT DATE_FORMAT(inited_time, '%c') as month, SUM(first_payment_price) as total_price
FROM some_table
WHERE inited_time > 0 AND deleted = 0
GROUP BY month;

更严谨的版本(区分年份+月份,避免跨年份同月份合并)

如果业务中存在跨年份数据,建议同时按年份和月份分组,避免不同年份的同月份金额被错误合并:

SELECT DATE_FORMAT(inited_time, '%Y-%c') as year_month, SUM(first_payment_price) as total_price
FROM some_table
WHERE inited_time > 0 AND deleted = 0
GROUP BY year_month;

关键修改点

  • 移除SELECT中的inited_time字段:分组后同一月份包含多个不同时间戳,该字段无实际意义
  • 将GROUP BY的依据改为提取的月份(或年月组合)字段:确保相同时间维度的行被合并,SUM能正确计算该维度的总金额

执行修正后的SQL后,你会得到如下格式的结果(以年月版本为例):

[
  {
    "year_month": "2016-5",
    "total_price": 125000.00
  },
  {
    "year_month": "2016-6",
    "total_price": 125000.00
  },
  {
    "year_month": "2016-7",
    "total_price": 280000.00
  }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 02:41:04