У меня есть таблица со следующей структурой и данными, представляющего состояние парковочного залива:Используя представление или триггер для предварительных обработки данных
id bayID state starttime
1 1 FREE 2013-08-09 09:13:02
2 1 OCCUPIED 2013-08-09 09:15:50
3 1 FREE 2013-08-09 09:33:15
4 1 OCCUPIED 2013-08-09 09:35:10
5 1 FREE 2013-08-09 10:03:22
теперь мне нужно рассчитать среднее время стоянки заполняемость на залив. Поскольку записи могут быть в миллионах, я ищу оптимальный способ сделать это, так что запрос средних значений можно сделать быстро.
Моя идея состояла в том, чтобы предварительно обработать данные из таблицы выше в другую таблицу, где время парковки уже рассчитано. Это можно было бы сделать, найдя пару OCCUPIED и FREE записей для бухты, а затем вычислить разницу во времени между временем начала. Это может дать мне структуру, как это:
bayID starttime duration
1 2013-08-09 09:15:50 ...
1 2013-08-09 09:35:10 ...
я мог бы запросить между 2 DateTimes и средних величин длительности.
Если это похоже на рекомендованный подход, мне было интересно, как будет создан расчетный набор данных. Я предполагаю, что я мог бы:
- создать триггер, который выполняется после вставки в первой таблице, делает расчет и вставки в другую таблицу, если это необходимо.
- создать a на первом столе. У меня недостаточно знаний MySQL, чтобы знать, возможно ли это, к сожалению.
Перед тем, как погрузиться в кодирование, может ли кто-нибудь дать мне несколько советов по предлагаемым решениям? Являются ли они оба выполнимыми и какими будут (dis) преимущества использования одного или другого?