报错如下
[42000][1140] In aggregated query without GROUP BY,
expression #2 of SELECT list contains nonaggregated column 'xx.xx.key_id';
this is incompatible with sql_mode=only_full_group_by
解决方式如下
select @@global.sql_mode;
SET sql_mode = (SELECT REPLACE(@@sql_mode, 'ONLY_FULL_GROUP_BY', ''));
SET GLOBAL sql_mode = (SELECT REPLACE(@@sql_mode, 'ONLY_FULL_GROUP_BY', ''));
原因:
在MySQL5.7版本之后对group by进行了优化。默认启动改进之后的版本启动了ONLY_FULL_GROUP_BY模式,只要有聚合函数sum(),count(),max(),avg()等函数就需要用到group by