关于子查询添加group by,从33s优化到1s的问题

图片说明

如图,我子查询里面, 把注释掉的两行,放开
即在子查询里面加一个group by
,会让计算记录数减少18亿,查询时间减少30多秒
两种写法,子查询的记录数是一样的,都是1803条
求问,这个是为什么?图片说明
上图是完整的explain说明

set@@sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_pISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

去掉ONLY_FULL_GROUP_BY即可正常执行sql.

explain重的rows只是一个大概的数字,说明不了绝对的问题。
你的sql给出的也不完整