[MySQL] group by 聚合函数的原理和聚合限制原因SELECT list is not in GROUP BY clause and contains nonaggregated column

group by 的原理是 

先把数据根据分组字段 , 分好组 ,

然后再每个分组里面执行具体的聚合操作

ONLY_FULL_GROUP_BY模式的限制是:

SELECT list is not in GROUP BY clause and contains nonaggregated column

select查询的列里面 , 有不是group by子句中的字段 , 有不是聚合函数的字段

原因是:

group by后 , 所有的字段和属性 , 都是这个分组的属性了

一个小组的属性里 , 只有知道 最大 / 最小 / 平均 /  总数  , 这样的聚合属性才是有意义的

每个组员个体的属性是没有意义的 

因此才会出现这个限制

开源作品

GO-FLY,一套可私有化部署的免费开源客服系统,安装过程不超过五分钟(超过你打我 !),基于Golang开发,二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的网页在线客服系统,致力于帮助广大开发者/中小站长快速整合私有客服功能
github地址:go-fly
官网地址:https://gofly.sopans.com

赞赏作者

微信交流

原文地址:https://www.cnblogs.com/taoshihan/p/14703905.html