Вы можете достичь этого с помощью подзапроса для получения предыдущего значения `Total`, а затем использовать его для вычисления разницы в `1h` при добавлении новой строки. Вот пример SQL-запроса, который выполняет эту задачу:
```sql
INSERT INTO your_table (Total, `1h`)
VALUES (
NEW_TOTAL_VALUE,
NEW_TOTAL_VALUE - (SELECT COALESCE(MAX(Total), 0) FROM your_table)
);
```
Здесь `your_table` — это имя вашей таблицы, а `NEW_TOTAL_VALUE` — значение, которое вы хотите вставить в колонку `Total`.
1. В подзапросе `(SELECT COALESCE(MAX(Total), 0) FROM your_table)` мы получаем максимальное значение `Total`, которое является последним значением перед вставкой. Функция `COALESCE` используется, чтобы вернуть 0, если таблица пуста и не имеет записей.
2. Затем мы используем это значение для вычисления `1h`, вычитая его из `NEW_TOTAL_VALUE`.
Это добавит новую строку с обновленным значением `Total` и правильно рассчитанным значением `1h`.
Пример значения:
```sql
INSERT INTO your_table (Total, `1h`)
VALUES (
100,
100 - (SELECT COALESCE(MAX(Total), 0) FROM your_table)
);
```
Этот запрос вставит в таблицу `Total` значение `100`, а в `1h` — разницу между `100` и предыдущим значением `Total`. Если `Total` на данный момент был 0 (в случае пустой таблицы), `1h` будет равно `100`.