SQLite-запрос для вычитания значения max и min в группе - PullRequest
0 голосов
/ 30 октября 2019

Я застрял в попытке настроить SQLitequery следующим образом: значение в строке максимальной отметки времени - значение в строке минимальной отметки времени в группе (скажем, месяц)

Цель - проанализироватьПотребляемая мощность месяц за месяцем. Данные хранятся каждые 10 минут в формате ниже.

Давайте рассмотрим пример данных

ts|i|p|base
2019-10-28 07:10:00|0|103|75526
2019-10-28 07:20:00|0|114|75535
2019-10-28 07:30:00|1|141|75550
2019-10-28 07:40:00|1|203|75575
2019-10-28 07:50:00|1|203|75575
2019-10-28 08:00:00|1|203|75575
...
2019-10-28 15:30:00|1|144|79397
2019-10-28 15:40:00|1|127|79414
2019-10-28 15:50:00|0|113|79427
2019-10-28 16:00:00|0|106|79437
2019-10-28 16:10:00|0| 99|79443
2019-10-28 16:20:00|0| 96|79445
2019-10-28 16:30:01|0| 96|79446

И так далее для каждого дня

Для выполнения моего запроса я могу опираться только на метку времени. Даже если счетчик счетчиков постоянно увеличивается ... они изменили мой измеритель мощности, таким образом сбросив индекс! Так что max (base) -min (base) не работает.

Мне нужно взять базу для группы max (ts) - min (ts) по месяцам или что-то в этом роде.

Ближайший результат, который я получил, с этим запросом:

SELECT ts, base
FROM (
    SELECT *, 
        row_number() OVER (PARTITION BT strftime('%Y-%m',ts) ORDER BY ts) mindate, 
        row_number() OVER (PARTITION BY strftime('%Y-%m',ts) ORDER BY ts desc) maxdate 
    FROM production
) 
WHERE mindate = 1 or maxdate = 1;

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

2019-01-01 00:00:01|29965948
2019-01-31 23:50:03|30093483
2019-02-01 00:00:04|30093483
2019-02-28 23:50:01|30361964
2019-03-01 00:00:01|30361964
2019-03-31 23:50:03|30722196
2019-04-01 00:00:01|30722196
2019-04-30 23:50:01|31078498
2019-05-01 00:00:01|31078498
2019-05-31 23:50:01|31497672
2019-06-01 00:00:03|31497672
2019-06-30 23:50:04|31904803
2019-07-01 00:00:01|31904803
2019-07-31 23:50:01|32327794
2019-08-01 00:00:01|32327794
2019-08-31 23:50:01|32730907
2019-09-01 00:00:01|32730907
2019-09-30 23:50:03|33077020
2019-10-01 00:00:04|33077020
2019-10-30 14:40:01|97317

Спасибо за вашу поддержку!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...