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

如何对SQL分组查询结果按object字段分组求和max列数值

正确实现SQL二次聚合查询的方案

现有写法的问题

  • 拟写的查询直接访问原始表total,没有基于第一次聚合后的结果计算,无法得到目标值
  • 存在语法错误:关键字拼写错误FORM应为FROM,SELECT字段列表末尾多了多余逗号
  • 补充:你第一次的查询语句中GROUP BY后的字段拼写为obect,应为object,否则会直接执行报错;另外max、min属于SQL内置关键字,作为字段别名使用时建议用反引号包裹避免冲突。

正确实现方式

方式1:子查询嵌套(全数据库版本兼容)

SELECT object, SUM(`max`) AS sum_max
FROM (
    -- 第一次按object、date分组聚合的正确语句
    SELECT object, date, MAX(`min`) as `max` 
    FROM total 
    GROUP BY object, date
) AS first_agg_result
GROUP BY object;

方式2:CTE公共表表达式(支持MySQL8.0+、PostgreSQL、SQL Server等主流数据库新版本)

WITH first_agg_result AS (
    SELECT object, date, MAX(`min`) as `max` 
    FROM total 
    GROUP BY object, date
)
SELECT object, SUM(`max`) AS sum_max
FROM first_agg_result
GROUP BY object;

示例数据运行结果

objectsum_max
21215
3555
4630
5555

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:48:02