filter() function

filter() filters data based on conditions defined in a predicate function (fn).

Output tables have the same schema as the corresponding input tables.

Function type signature
(<-tables: stream[A], fn: (r: A) => bool, ?onEmpty: string) => stream[A] where A: Record
For more information, see Function type signatures.



(Required) Single argument predicate function that evaluates true or false.

Records representing each row are passed to the function as r. Records that evaluate to true are included in output tables. Records that evaluate to null or false are excluded from output tables.


Action to take with empty tables. Default is drop.

Supported values:

  • keep: Keep empty tables.
  • drop: Drop empty tables.


Input data. Default is piped-forward data (<-).


Filter based on InfluxDB measurement, field, and tag

from(bucket: "example-bucket")
    |> range(start: -1h)
    |> filter(
        fn: (r) => r._measurement == "cpu" and r._field == "usage_system" and r.cpu == "cpu-total",

Keep empty tables when filtering

import "sampledata"
import "experimental/table"
    |> filter(fn: (r) => r._value > 18, onEmpty: "keep")

View example input and output

Filter values based on thresholds

import "sampledata"
    |> filter(fn: (r) => r._value > 0 and r._value < 10)

View example input and output

Was this page helpful?

Thank you for your feedback!

Upgrade to InfluxDB Cloud or InfluxDB 2.0!

InfluxDB Cloud and InfluxDB OSS 2.0 ready for production.