any_value()
ONLY_FULL_GROUP_BY
MySQL5.7之后,sql_mode中ONLY_FULL_GROUP_BY模式默认设置为打开状态。
ONLY_FULL_GROUP_BY就是在此模式下,select的列都要在group中,或者是聚合列SUM、AVG、MAX、MIN。
查看ONLY_FULL_GROUP_BY
select @@global.sql_mode查看当前数据库的sql_mode属性值
解决方法
- 去除ONLY_FULL_GROUP_BY
- 使用any_value()函数来抑制ONLY_FULL_GROUP_BY:会选择被分到同一组的数据里第一条数据