Mysql复杂查询,按限制分组

Mysql复杂查询,按限制分组,mysql,sql,select,subquery,limit,Mysql,Sql,Select,Subquery,Limit,我有下表 门店访问:门店id、城市id、日期、访问次数 我想选择最多5家通过访问订购的商店 SELECT X.* FROM ( SELECT store_id, SUM(visits) as sum_visits FROM store_visits WHERE (date <= '2014-06-28' AND date >= '2014-06-27') AND store_visits.city_id =

我有下表

门店访问:门店id、城市id、日期、访问次数

我想选择最多5家通过访问订购的商店

SELECT X.* 
  FROM (
    SELECT 
      store_id, SUM(visits) as sum_visits FROM store_visits
    WHERE 
      (date <= '2014-06-28' AND  date >= '2014-06-27') 
    AND 
      store_visits.city_id = 2 
    GROUP BY 
      store_id 
    ORDER BY 
      sum_visits desc
  ) X 
LIMIT 5
我想知道是否有办法增强查询以删除临时表和文件排序。

尝试以下方法:

SELECT store_id, SUM(visits) AS sum_visits 
FROM store_visits sv
WHERE sv.date <= '2014-06-28' AND sv.date >= '2014-06-27' AND sv.city_id = 2 
GROUP BY store_id 
ORDER BY sum_visits DESC LIMIT 5

我认为这不会消除临时表和文件排序