У меня есть две таблицы, и я хочу объединить их и суммировать некоторые столбцы. Критерием соединения должно быть то, что время таблицы A находится в пределах 1 и 5 минут от времени таблицы B.
Итак, B.time ‹= A.time ‹= B.time + (1|5) минут.
Вот код, и у меня есть индексы (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