Documentation

查询第一个和最后一个值

使用 first()last() 返回输入表中的第一个或最后一个记录。

data
    |> first()

// OR

data
    |> last()

默认情况下,InfluxDB 返回按时间排序的结果,但是您可以使用 sort() 函数 更改结果的排序方式。first()last() 尊重输入数据的排序顺序,并根据接收到的顺序返回记录。

first

first() 返回输入表中的第一个非空记录。

给定以下输入

_time_value
2020-01-01T00:01:00Z1.0
2020-01-01T00:02:00Z1.0
2020-01-01T00:03:00Z2.0
2020-01-01T00:04:00Z3.0

以下函数返回

|> first()
_time_value
2020-01-01T00:01:00Z1.0

last

last() 返回输入表中的最后一个非空记录。

给定以下输入

_time_value
2020-01-01T00:01:00Z1.0
2020-01-01T00:02:00Z1.0
2020-01-01T00:03:00Z2.0
2020-01-01T00:04:00Z3.0

以下函数返回

|> last()
_time_value
2020-01-01T00:04:00Z3.0

将 first() 或 last() 与 aggregateWindow() 一起使用

first()last()aggregateWindow() 一起使用,以选择基于时间的组中的第一个或最后一个记录。aggregateWindow() 将数据分段到时间窗口中,使用聚合或选择器函数将每个窗口中的数据聚合为单个点,然后删除基于时间的分段。

给定以下输入

_time_value
2020-01-01T00:00:00Z10
2020-01-01T00:00:15Z12
2020-01-01T00:00:45Z9
2020-01-01T00:01:05Z9
2020-01-01T00:01:10Z15
2020-01-01T00:02:30Z11

以下函数返回

|> aggregateWindow(every: 1h, fn: first)
_time_value
2020-01-01T00:00:59Z10
2020-01-01T00:01:59Z9
2020-01-01T00:02:59Z11
|> aggregateWindow(every: 1h, fn: last)
_time_value
2020-01-01T00:00:59Z9
2020-01-01T00:01:59Z15
2020-01-01T00:02:59Z11

此页面是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像当前一样使用它,而无需对代码进行任何更改。

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

启动快速。扩展更快。

获取更新

InfluxDB 3 Core 是一个开源、高速、最近数据引擎,可实时收集和处理数据,并将其持久保存到本地磁盘或对象存储。InfluxDB 3 Enterprise 构建在 Core 的基础上,增加了高可用性、读取副本、增强的安全性以及数据压缩功能,以实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层可供非商业家庭或业余爱好者使用。

有关更多信息,请查看