Вероятно, вы можете достичь того, что вам нужно, с помощью вложенного запроса и функции difference
. https://docs.influxdata.com/influxdb/v1.7/query_language/functions/#difference
Например:
Допустим, ваше измерение называется change
, а поле называется value
SELECT diff FROM
(SELECT difference(value) as diff FROM
(SELECT value FROM change WHERE your_time_filter GROUP BY time(1s) fill(0))
)
WHERE diff > 0
Итак, вы сначала заполните пустые места с нулями. Затем возьмите difference
s между последующими значениями. Затем выберите различия, которые являются положительными. Если разница равна 0, то она между двумя нулями или двумя, без изменений. Если это 1, то изменение от нуля до единицы (что вам нужно). Если оно равно -1, то это изменение от одного до нуля, конец последовательности единиц.
Возможно, вам потребуется немного изменить запрос с помощью временных интервалов и группировок.