Я пытаюсь вернуть GPS-координаты за последние 3 посещения магазина.Текущее посещение Предыдущее посещение До этого.
Задача состоит в том, что существует более 15 000 магазинов, каждый из которых был бы посещен в разные даты (в течение года).
Я только написалмой запрос на повторную настройку двух последних посещений (текущего и предыдущего), и я уже сталкиваюсь с проблемами эффективности, поскольку запрос выполняется вечно.
У меня есть запрос, верный набор данных, однако эффективности не хватаеточень, поскольку это занимает очень много времени для запуска (количество часов).
SELECT
MAX(ActionDate) 'VisitDate'
, Store 'Store'
, Route 'Route'
, GPS 'GPS'
FROM
sys_data.mod_visit AA
WHERE
ActionDate = (SELECT
MAX(ActionDate) FROM sys_data.mod_visit MX
WHERE
ActionDate < (SELECT MAX(ActionDate) FROM sys_data.mod_visit WHERE Store = MX.Store)
AND MX.Store = AA.Store
GROUP BY
Store)
AND ActionDate < CURDATE()
AND YEAR(ActionDate) = YEAR(CURDATE())
Индексируются как столбцы store, так и actiondate.
Мне нужно найти способ выполнить этот выбор более эффективно, чтобы я мог использовать запрос ежедневно.