How to sort and limit data with Flux

Warning! This page documents an earlier version of Flux, which is no longer actively developed. Flux v0.50 is the most recent stable version of Flux.

The sort()function orders the records within each table. The following example orders system uptime first by region, then host, then value.

from(bucket:"telegraf/autogen")
  |> range(start:-12h)
  |> filter(fn: (r) =>
    r._measurement == "system" AND
    r._field == "uptime"
  )
  |> sort(columns:["region", "host", "_value"])

The limit() function limit the number of records in output tables to a fixed number (n). The following example shows up to 10 records from the past hour.

from(bucket:"telegraf/autogen")
  |> range(start:-1h)
  |> limit(n:10)

You can use sort() and limit() together to show the top N records. The example below returns the 10 top system uptime values sorted first by region, then host, then value.

from(bucket:"telegraf/autogen")
  |> range(start:-12h)
  |> filter(fn: (r) =>
    r._measurement == "system" AND
    r._field == "uptime"
  )
  |> sort(columns:["region", "host", "_value"])
  |> limit(n:10)

You now have created a Flux query that sorts and limits data. Flux also provides the `top() and bottom() function to perform both of these functions at the same time.