Есть ли «простой способ» захватить две строки данных из таблицы и добавить строки со значениями «между»?
Я хочу захватить широту, долготу и временную метку из каждой строки. Сравните временную метку с предыдущей строкой и интерполируйте новые строки, если метка времени больше моего минимума … захватите две строки на 1 минуту и добавьте строки на каждые 10 секунд …
Является ли использование хранимой процедуры лучшим способом для этого? Самый простой?
В настоящее время с использованием mySql и PHP …
Я бы просто захватил данные и выполнил математику в PHP. SQL не все такое универсальное, и вы избавляетесь от головной боли.
EDIT: На самом деле, просто для удовольствия, вы могли бы сделать математику легче, присоединившись к таблице календаря.
Сначала вам понадобится таблица ints
со значениями 0-9. Тогда вы можете сделать что-то вроде:
SELECT cal.t, lat, lng FROM ( SELECT {start_time} + INTERVAL (ti*1000 + ui*100 + vi*10) SECOND as t FROM ints as t JOIN ints as u JOIN ints as v WHERE t <= {end_time} ) LEFT JOIN locations ON (cal.t = locations.stamp)
Это вернет таблицу со значениями NULL
для lat
и lng
где нет метки на 10-секундной метке, поэтому вы можете перебирать и выполнять математику только для них. Имейте в виду, что это работает только в том случае, если у вас все данные, которые у вас есть (кроме начала и конца), приземлитесь прямо на отметке 10 секунд.