У меня есть таблица MySQL, содержащая журнал с 4 различными событиями.Каждое событие регистрируется каждые 15 или около того минут в отдельной строке, но они не всегда фиксируются в одно и то же время каждый раз.
Структура таблицы:
id datetime eventtype data
Мне нужно выполнить некоторые вычисления для всех 4 событий, зафиксированных в одном базовом периоде, обычно в течение 5 минут друг от друга.Например, события 1 и 2 могут быть захвачены в 10:41 и 10:42 соответственно, в то время как событие 3 захвачено в 10:44, а событие 4 наступает даже позже в 10: 45.
Проблема заключается вчто любое событие может быть на минуту или более вперед или позади других.Есть ли способ, которым я могу выбрать и сгруппировать строки каждого типа события в течение ближайшего периода?
Следует ожидать некоторой неточности, поскольку возможно, что одно событие не войдет, или даже будет выдвинуто на несколько минут и вместо этого станет частью следующего таймфрейма.Мне просто нужно убедиться, что в каждой данной группе будет действительное событие для каждого типа события (которое я могу проверить во время расчета).
Я начал с group by , нопотерпел неудачу, так как дата и время не одинаковы для каждого события.Это будет большая таблица, поэтому я не думаю, что имеет смысл циклически проходить по строкам и выполнять математику / группировку одну за другой, по крайней мере, я надеюсь, что это не самый лучший способ.Я не уверен, куда обратиться дальше.Будем очень благодарны за любые указатели в правильном направлении!
Пример данных
id datetime eventtype data
1 10:41 1 67
2 10:45 4 14
3 10:42 2 12
4 10:44 3 87
5 10:57 1 63
6 10:59 4 13
7 10:59 2 19
8 11:01 3 01
Результаты по желаемому запросу:
datetime event1 event2 event3 event4
Result 1: 10:41 67 12 87 14
Result 2: 10:57 63 19 01 13