如何规范化 InfluxDB 中的时间序列?
How can I normalize the time series in InfluxDB?
目标是创建在时间范围的第一个值上标准化的时间序列。例如,我们有系列
time | value
------------------------------
2020-07-13T00:00:00Z | 2
2020-07-14T00:00:00Z | 4
2020-07-15T00:00:00Z | 3
想要得到结果
time | value
------------------------------
2020-07-13T00:00:00Z | 1
2020-07-14T00:00:00Z | 2
2020-07-15T00:00:00Z | 1.5
我试过以下查询:
select "value" / first_value from (select "value" from "database"."autogen"."measurement"), (select first("value") as first_value from "database"."autogen"."measurement")
但它产生空的时间序列。
谁能告诉我哪里错了?
可以通过在查询末尾添加 fill(previous)
来实现所需的结果,即
select "value" / first_value from (select "value" from "database"."autogen"."measurement"), (select first("value") as first_value from "database"."autogen"."measurement") fill(previous)
...给出以下输出:
name: measurement
time value_first_value
---- -----------------
2020-07-13T00:00:00Z
2020-07-13T00:00:00Z 1
2020-07-14T00:00:00Z 2
2020-07-15T00:00:00Z 1.5
似乎要进行 "value" / first_value
计算,两个字段中的值必须存在于同一时间戳中。由于子查询 select first("value") as first_value from "database"."autogen"."measurement"
的结果在特定时间戳提供了单个值,因此不满足要求。但是,fill(previous)
使 first_value
在所需的时间戳可用。
目标是创建在时间范围的第一个值上标准化的时间序列。例如,我们有系列
time | value
------------------------------
2020-07-13T00:00:00Z | 2
2020-07-14T00:00:00Z | 4
2020-07-15T00:00:00Z | 3
想要得到结果
time | value
------------------------------
2020-07-13T00:00:00Z | 1
2020-07-14T00:00:00Z | 2
2020-07-15T00:00:00Z | 1.5
我试过以下查询:
select "value" / first_value from (select "value" from "database"."autogen"."measurement"), (select first("value") as first_value from "database"."autogen"."measurement")
但它产生空的时间序列。
谁能告诉我哪里错了?
可以通过在查询末尾添加 fill(previous)
来实现所需的结果,即
select "value" / first_value from (select "value" from "database"."autogen"."measurement"), (select first("value") as first_value from "database"."autogen"."measurement") fill(previous)
...给出以下输出:
name: measurement
time value_first_value
---- -----------------
2020-07-13T00:00:00Z
2020-07-13T00:00:00Z 1
2020-07-14T00:00:00Z 2
2020-07-15T00:00:00Z 1.5
似乎要进行 "value" / first_value
计算,两个字段中的值必须存在于同一时间戳中。由于子查询 select first("value") as first_value from "database"."autogen"."measurement"
的结果在特定时间戳提供了单个值,因此不满足要求。但是,fill(previous)
使 first_value
在所需的时间戳可用。