У меня есть таблица с именем tb_records
, которая является записью событий. Примеры значений:
id from to
1 01:00:00 01:00:03
2 01:00:05 01:00:07
3 01:00:50 01:00:51
То, что я хотел бы сделать, это сгенерировать последовательность за секундой в PostgreSQL. Таким образом, результат будет
id from to time
1 01:00:00 01:00:03 01:00:00
1 01:00:00 01:00:03 01:00:01
1 01:00:00 01:00:03 01:00:02
1 01:00:00 01:00:03 01:00:03
2 01:00:05 01:00:07 01:00:05
2 01:00:05 01:00:07 01:00:06
2 01:00:05 01:00:07 01:00:07
3 01:00:50 01:00:51 01:00:50
3 01:00:50 01:00:51 01:00:51
Обычно, в Python или R, алгоритм basic , который я бы выбрал (без использования какой-либо библиотеки или пакета):
- Рассчитать разницу времени в секундах для каждого
id
(diff
)
- Для каждого идентификатора реплицируйте строки на
diff
- Создать столбец
time
с начальными значениями в виде столбца from
- Для каждой
id
и строки столбец приращения time
на одну секунду
Я не совсем понимаю, как это сделать в SQL, поскольку я привык создавать эти шаги последовательно.