Query first and last values
Use the first()
or
last()
functions
to return the first or last record in an input table.
data
|> first()
// OR
data
|> last()
By default, InfluxDB returns results sorted by time, however you can use the
sort()
function
to change how results are sorted.
first()
and last()
respect the sort order of input data and return records
based on the order they are received in.
first
first()
returns the first non-null record in an input table.
Given the following input:
_time | _value |
---|---|
2020-01-01T00:01:00Z | 1.0 |
2020-01-01T00:02:00Z | 1.0 |
2020-01-01T00:03:00Z | 2.0 |
2020-01-01T00:04:00Z | 3.0 |
The following function returns:
|> first()
_time | _value |
---|---|
2020-01-01T00:01:00Z | 1.0 |
last
last()
returns the last non-null record in an input table.
Given the following input:
_time | _value |
---|---|
2020-01-01T00:01:00Z | 1.0 |
2020-01-01T00:02:00Z | 1.0 |
2020-01-01T00:03:00Z | 2.0 |
2020-01-01T00:04:00Z | 3.0 |
The following function returns:
|> last()
_time | _value |
---|---|
2020-01-01T00:04:00Z | 3.0 |
Use first() or last() with aggregateWindow()
Use first()
and last()
with aggregateWindow()
to select the first or last records in time-based groups.
aggregateWindow()
segments data into windows of time, aggregates data in each window into a single
point using aggregate or selector functions, and then removes the time-based segmentation.
Given the following input:
_time | _value |
---|---|
2020-01-01T00:00:00Z | 10 |
2020-01-01T00:00:15Z | 12 |
2020-01-01T00:00:45Z | 9 |
2020-01-01T00:01:05Z | 9 |
2020-01-01T00:01:10Z | 15 |
2020-01-01T00:02:30Z | 11 |