MySQL使用聚合函数可以不搭配GROUP BY分组吗?

本人是入门没多久的数据产品,今天写了一条查询最近15天没产生过订单的store。数据开发写的SQL比我写的出结果速度快了8倍。
有个地方实在没看懂,虚心请教。

我写的
SELECT s.id 
FROM 
`store`s JOIN  
( SELECT `store_id` , MAX( `create_time`)t  FROM `order`  GROUP BY `store_id` )a
ON s.id = a.store_id
WHERE 
s.channel = 2 
AND s.show = 1  
AND DATEDIFF(  now(), a.t ) > 15
数据开发写的
SELECT id
FROM 
`store`s 
where 
s.channel = 2 
AND s.show = 1  
AND DATEDIFF(now(), (SELECT  MAX( `create_time`) FROM `order` o where o.store_id = s.id)) > 15

看了下我SQL的运行性能分析,是因为order表数据太多行(大概有几千万吧),用了GROPU BY分组导致性能。
开发写的避开了使用GROPU BY ,但本人功力较浅,表示看不懂了:
AND DATEDIFF(now(), (SELECT MAX( `create_time`) FROM `order` o where o.store_id = s.id)) > 15的这个查询条件中,子查询语句里面输出MAX的时间,但是没有使用分组聚合的话,输出的不应该是只有一行数据吗?为什么能实现我按照store_id进行分组的需求?虽然大概猜到核心在于后面的o.store_id = s.id,但表示没看懂

我觉得是你的SQL逻辑问题,你的SQL把外层的where条件复制到聚合子查询里面会好些,不是所有优化器都主动做谓词下推,再者就是join的方式这个看数据库引擎