---
title: union() function
description: union() merges two or more input streams into a single output stream.
url: https://docs.influxdata.com/flux/v0/stdlib/universe/union/
estimated_tokens: 1015
product: Flux
version: v0
publisher: InfluxData
canonical: https://docs.influxdata.com/flux/v0/stdlib/universe/union/
date: '2024-04-08T16:01:02-06:00'
lastmod: '2024-04-08T16:01:02-06:00'
---

* Flux 0.7.0+

InfluxDB support

`union()` merges two or more input streams into a single output stream.

The output schemas of `union()` is the union of all input schemas.`union()` does not preserve the sort order of the rows within tables.
Use `sort()` if you need a specific sort order.

### Union vs join

`union()` does not modify data in rows, but unions separate streams of tables
into a single stream of tables and groups rows of data based on existing group keys.`join()` creates new rows based on common values in one or more specified columns.
Output rows also contain the differing values from each of the joined streams.

##### Function type signature

```js
(tables: [stream[A]]) => stream[A] where A: Record
```

For more information, see [Function type signatures](/flux/v0/function-type-signatures/).

## Parameters

### tables

(Required)
List of two or more streams of tables to union together.

## Examples

* [Union two streams of tables with unique group keys](#union-two-streams-of-tables-with-unique-group-keys)
* [Union two streams of tables with empty group keys](#union-two-streams-of-tables-with-empty-group-keys)

### Union two streams of tables with unique group keys

```js
import "generate"

t1 =
    generate.from(
        count: 4,
        fn: (n) => n + 1,
        start: 2022-01-01T00:00:00Z,
        stop: 2022-01-05T00:00:00Z,
    )
        |> set(key: "tag", value: "foo")
        |> group(columns: ["tag"])

t2 =
    generate.from(
        count: 4,
        fn: (n) => n * (-1),
        start: 2022-01-01T00:00:00Z,
        stop: 2022-01-05T00:00:00Z,
    )
        |> set(key: "tag", value: "bar")
        |> group(columns: ["tag"])

union(tables: [t1, t2])
```

[](#view-example-output)

View example output

#### Output data

|       \_time       |\_value|\*tag|
|--------------------|-------|-----|
|2022-01-01T00:00:00Z|   0   | bar |
|2022-01-02T00:00:00Z|  \-1  | bar |
|2022-01-03T00:00:00Z|  \-2  | bar |
|2022-01-04T00:00:00Z|  \-3  | bar |

|       \_time       |\_value|\*tag|
|--------------------|-------|-----|
|2022-01-01T00:00:00Z|   1   | foo |
|2022-01-02T00:00:00Z|   2   | foo |
|2022-01-03T00:00:00Z|   3   | foo |
|2022-01-04T00:00:00Z|   4   | foo |

### Union two streams of tables with empty group keys

```js
import "generate"

t1 =
    generate.from(
        count: 4,
        fn: (n) => n + 1,
        start: 2021-01-01T00:00:00Z,
        stop: 2021-01-05T00:00:00Z,
    )
        |> set(key: "tag", value: "foo")
        |> group()

t2 =
    generate.from(
        count: 4,
        fn: (n) => n * (-1),
        start: 2021-01-01T00:00:00Z,
        stop: 2021-01-05T00:00:00Z,
    )
        |> set(key: "tag", value: "bar")
        |> group()

union(tables: [t1, t2])
```

[](#view-example-output)

View example output

#### Output data

|       \_time       |\_value|tag|
|--------------------|-------|---|
|2021-01-01T00:00:00Z|   1   |foo|
|2021-01-02T00:00:00Z|   2   |foo|
|2021-01-03T00:00:00Z|   3   |foo|
|2021-01-04T00:00:00Z|   4   |foo|
|2021-01-01T00:00:00Z|   0   |bar|
|2021-01-02T00:00:00Z|  \-1  |bar|
|2021-01-03T00:00:00Z|  \-2  |bar|
|2021-01-04T00:00:00Z|  \-3  |bar|

#### Related

* [join() function](/flux/v0/stdlib/universe/join/)

[transformations](/flux/v0/tags/transformations/)
| _time | _value | *tag |
| --- | --- | --- |
| _time | _value | *tag |
| 2022-01-01T00:00:00Z | 0 | bar |
| 2022-01-02T00:00:00Z | -1 | bar |
| 2022-01-03T00:00:00Z | -2 | bar |
| 2022-01-04T00:00:00Z | -3 | bar |

| _time | _value | *tag |
| --- | --- | --- |
| _time | _value | *tag |
| 2022-01-01T00:00:00Z | 1 | foo |
| 2022-01-02T00:00:00Z | 2 | foo |
| 2022-01-03T00:00:00Z | 3 | foo |
| 2022-01-04T00:00:00Z | 4 | foo |

| _time | _value | tag |
| --- | --- | --- |
| _time | _value | tag |
| 2021-01-01T00:00:00Z | 1 | foo |
| 2021-01-02T00:00:00Z | 2 | foo |
| 2021-01-03T00:00:00Z | 3 | foo |
| 2021-01-04T00:00:00Z | 4 | foo |
| 2021-01-01T00:00:00Z | 0 | bar |
| 2021-01-02T00:00:00Z | -1 | bar |
| 2021-01-03T00:00:00Z | -2 | bar |
| 2021-01-04T00:00:00Z | -3 | bar |
