Я в качестве подрядчика ставлю у заказчика новую систему. Для сохранения совместимости со старым форматом сбора данных с меня просят сделать такой вариант.
CREATE TRIGGER tr_bi_tablename
BEFORE INSERT ON tablename
FOR EACH ROW
SET NEW.delta_column = NEW.meter_column - COALESCE(( SELECT meter_column
FROM tablename
ORDER BY created_at DESC LIMIT 1), 0);
BEFORE insert триггер - считаем разницу с предыдущим total и записываем в соответствующее поле
Задача - одним вызовом к базе вставить в базу новое значение Total, а в колонку 1h вставить разницу между новым значением Total и предыдущим Total.
И где-то потом надо всю эту структуру (и её изменения) отдельно хранить.
как правильно составить функции через условия в Excel
как построить график на основе этих данных
В отрыве от конкретных задач вариант широкой "дырявой" таблицы мне кажется самым плохим
Akina тоже рекомендует EAV
'\N'
в выгрузке SELECT INTO OUTFILE означает NULL.accountid по смыслу должно бы быть первичным индексом. При LOAD DATA, в отличие от INSERT INTO, значение NULL для автоинкремента не приводит к генерации значения.
Так что проблема есть следствие некорректности ещё при экспорте данных. Используйте дамп, а не выгрузку.