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

MySQL按多列分组计算指定列平均值的实现方法

MySQL按多字段分组计算列平均值实现方法

核心实现逻辑是通过GROUP BY指定多个分组维度字段,搭配AVG()聚合函数完成计算,不需要复杂的子查询或者关联操作,写法非常直接。

可直接运行的SQL代码

把代码里的your_source_table替换成你自己实际的表名即可:

SELECT
  AVG(data) AS `AVG(data)`,
  groupA,
  groupB
FROM your_source_table
GROUP BY groupA, groupB;

关键说明

  • 分组规则:GROUP BY后拼接多个字段时,MySQL会将所有指定字段取值完全一致的行划分为同一分组,完全匹配你需要按唯一(groupA, groupB)值对聚合的需求。
  • 计算逻辑:AVG(data)会自动跳过data列为NULL的行,计算分组内所有非NULL值的算术平均值。如果需要固定结果的小数位数,可以嵌套ROUND函数,比如保留2位小数的写法为ROUND(AVG(data), 2) AS AVG(data)``。
  • 兼容性:上述写法完全符合MySQL 5.7+版本默认开启的ONLY_FULL_GROUP_BY语法规范,不会抛出非聚合字段不在GROUP BY子句中的报错。

效果验证示例

如果你的源表有如下测试数据:

datagroupAgroupB
121x
181x
241y
362y

运行SQL后返回的结果和你要求的表结构完全一致:

AVG(data)groupAgroupB
151x
241y
362y

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 22:45:43