Таблица MySQL с отметками времени UNIX — сортировка по отметке времени и вычисление разницы между одной строкой и предыдущей

Похожие вопросы

Во-первых, я почти уверен, что где-то нужно ответить на что-то подобное, но я не смог его найти. Вот несколько похожих страниц, которые я не ищу:

MySQL — запрос UPDATE на основе запроса SELECT Это вычисляет разницу во времени между две строки, идентификаторы которых уже известны для обеих строк, и в моем случае я не знаю, каким будет идентификатор предыдущей строки. Кроме того, я использую DATETIME, когда моя таблица представляет собой простую временную метку Unix.

Вычислить разницу во времени между двумя отметками времени в mysql Кажется зависеть от функций, относящихся к определенному типу TIMESTAMP.

Разница между текущей и предыдущей отметкой времени Кажется, спрашивает правильную вещь, но его таблица не имеет реалистичных временных меток, и я не могу получить ни один из ответов на работу.

MySQL: как узнать разницу между двумя отметками времени в секундах Это не связано. Мое время уже указано во временных метках, поэтому я могу просто вычесть его.

Вычислить дельту (разность текущей и предыдущей строк) Группа mysql по определенному столбцу Это довольно близко, но это запрос SELECT, и я пытаюсь ОБНОВИТЬ таблицу, чтобы эта информация была в новом столбце, чтобы я мог использовать ее в последующих запросах. Используемый DATEDIFF, вероятно, можно легко преобразовать в простое вычитание. Я действительно не хочу создавать новую таблицу со всеми возможными значениями разницы в секундах.

Что я пытаюсь сделать

В Excel я мог брать строки, сортировать их по столбцу «метка времени», а затем устанавливать новый столбец (назовем его «дельта»), который равен одной метке времени минус предыдущая метка времени. Итак, я получу значение в секундах, которое представляет собой время, прошедшее между одной временной меткой и предыдущей. Если строка была, например, на 1 секунду позже предыдущей, значение было бы «1», или если бы она была на минуту позже, то было бы «60». Все метки времени являются метками времени Unix, поэтому с 1 января 1970 года прошло всего несколько секунд.

Добавить новый столбец в MySQL легко, но я не могу найти правильный запрос для его заполнения.

Вот пример таблицы с заполненным дельта-столбцом:

id timestamp delta
3 1623400800 NULL
2 1623444000 43200
56 1623444060 60

Ограничения решения

В идеале, поскольку строк много, я бы хотел что-то, что работало бы аналогично тому, что я делал бы в Excel, для повышения эффективности. То есть сортировка таблицы и заполнение дельты на основе данных отсортированной таблицы.

Конечно, если это невозможно, то запрос, который должен выполнять индивидуальный поиск для заполнения «дельты» для каждой строки, вероятно, пока приемлем. Мне просто придется запускать его много раз с частями данных.

Источник: ledsshop.ru

Стиль жизни - Здоровье!