docs-v2/content/flux/v0/stdlib/universe/distinct.md

5.3 KiB

title description menu weight flux/v0/tags introduced
distinct() function `distinct()` returns all unique values in a specified column.
flux_v0_ref
name parent identifier
distinct universe universe/distinct
101
transformations
selectors
0.7.0

distinct() returns all unique values in a specified column.

The _value of each output record is set to a distinct value in the specified column. null is considered its own distinct value if present.

Function type signature
(<-tables: stream[A], ?column: string) => stream[B] where A: Record, B: Record

{{% caption %}} For more information, see Function type signatures. {{% /caption %}}

Parameters

column

Column to return unique values from. Default is _value.

tables

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

Examples

Return distinct values from the _value column

import "sampledata"

sampledata.int()
    |> distinct()

{{< expand-wrapper >}} {{% expand "View example input and output" %}}

Input data

_time _value *tag
2021-01-01T00:00:00Z -2 t1
2021-01-01T00:00:10Z 10 t1
2021-01-01T00:00:20Z 7 t1
2021-01-01T00:00:30Z 17 t1
2021-01-01T00:00:40Z 15 t1
2021-01-01T00:00:50Z 4 t1
_time _value *tag
2021-01-01T00:00:00Z 19 t2
2021-01-01T00:00:10Z 4 t2
2021-01-01T00:00:20Z -3 t2
2021-01-01T00:00:30Z 19 t2
2021-01-01T00:00:40Z 13 t2
2021-01-01T00:00:50Z 1 t2

Output data

*tag _value
t1 -2
t1 10
t1 7
t1 17
t1 15
t1 4
*tag _value
t2 19
t2 4
t2 -3
t2 13
t2 1

{{% /expand %}} {{< /expand-wrapper >}}

Return distinct values from a non-default column

import "sampledata"

sampledata.int()
    |> distinct(column: "tag")

{{< expand-wrapper >}} {{% expand "View example input and output" %}}

Input data

_time _value *tag
2021-01-01T00:00:00Z -2 t1
2021-01-01T00:00:10Z 10 t1
2021-01-01T00:00:20Z 7 t1
2021-01-01T00:00:30Z 17 t1
2021-01-01T00:00:40Z 15 t1
2021-01-01T00:00:50Z 4 t1
_time _value *tag
2021-01-01T00:00:00Z 19 t2
2021-01-01T00:00:10Z 4 t2
2021-01-01T00:00:20Z -3 t2
2021-01-01T00:00:30Z 19 t2
2021-01-01T00:00:40Z 13 t2
2021-01-01T00:00:50Z 1 t2

Output data

*tag _value
t1 t1
*tag _value
t2 t2

{{% /expand %}} {{< /expand-wrapper >}}

Return distinct values from data with null values

import "sampledata"

sampledata.int(includeNull: true)
    |> distinct()

{{< expand-wrapper >}} {{% expand "View example input and output" %}}

Input data

_time _value *tag
2021-01-01T00:00:00Z -2 t1
2021-01-01T00:00:10Z t1
2021-01-01T00:00:20Z 7 t1
2021-01-01T00:00:30Z t1
2021-01-01T00:00:40Z t1
2021-01-01T00:00:50Z 4 t1
_time _value *tag
2021-01-01T00:00:00Z t2
2021-01-01T00:00:10Z 4 t2
2021-01-01T00:00:20Z -3 t2
2021-01-01T00:00:30Z 19 t2
2021-01-01T00:00:40Z t2
2021-01-01T00:00:50Z 1 t2

Output data

*tag _value
t1 -2
t1
t1 7
t1 4
*tag _value
t2
t2 4
t2 -3
t2 19
t2 1

{{% /expand %}} {{< /expand-wrapper >}}