#mysql #sql #select #subquery #limit
#mysql #sql #выберите #подзапрос #ограничение
Вопрос:
У меня есть следующая таблица
store_visits: (store_id, city_id, date, visits, ...)
Я хочу выбрать максимум 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
Мне было интересно, есть ли способ улучшить запрос, чтобы исключить временную таблицу и сортировку файлов.
Ответ №1:
Попробуйте это:
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
Комментарии:
1. Я не думаю, что это устранит временную таблицу и сортировку файлов