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!

Introducing InfluxDB 3.0

The new core of InfluxDB built with Rust and Apache Arrow. Available today in InfluxDB Cloud Dedicated.

Learn more

State of the InfluxDB Cloud Serverless documentation

The new documentation for InfluxDB Cloud Serverless is a work in progress. We are adding new information and content almost daily. Thank you for your patience!

If there is specific information you’re looking for, please submit a documentation issue.