У меня есть две таблицы, и я хочу объединить их и суммировать некоторые столбцы. Критерии объединения должны заключаться в том, что время таблицы A находится в пределах 1 и 5 минут от времени таблицы B.
То есть B.time <= A.time <= B.time + (1 | 5) минут </p>
Вот код, и у меня есть индексы (btree) в обоих столбцах даты и времени. Но, похоже, работает СУПЕР МЕДЛЕННО. Что-нибудь, что я могу сделать по-другому?
SELECT
a.Name,
SUM(b.UnitsSold),
SUM(b.Revenue),
SUM(c.UnitsSold),
SUM(c.Revenue)
FROM cars a
INNER JOIN sales b
ON
b.Datet <= a.Datet
and a.Datet <= DATE_ADD(b.Datet, INTERVAL 1 MINUTE)
INNER JOIN sales c
ON
c.Datet <= a.Datet
and a.Datet <= DATE_ADD(c.Datet, INTERVAL 5 MINUTE)
GROUP BY
a.name