---
title: experimental.window() function
description: experimental.window() groups records based on time.
url: https://docs.influxdata.com/flux/v0/stdlib/experimental/window/
estimated_tokens: 2733
product: Flux
version: v0
publisher: InfluxData
canonical: https://docs.influxdata.com/flux/v0/stdlib/experimental/window/
date: '2024-04-08T16:01:02-06:00'
lastmod: '2024-04-08T16:01:02-06:00'
---

* Flux 0.106.0+

InfluxDB support

> [!Important]
> `experimental.window()` is [subject to change at any time](/flux/v0/stdlib/experimental/#experimental-packages-are-subject-to-change).

`experimental.window()` groups records based on time.

`_start` and `_stop` columns are updated to reflect the bounds of
the window the row’s time value is in.
Input tables must have `_start`, `_stop`, and `_time` columns.

A single input record can be placed into zero or more output tables depending
on the specific windowing function.

By default the start boundary of a window will align with the Unix epoch
modified by the offset of the `location` option.

#### Calendar months and years

`every`, `period`, and `offset` support all valid duration units, including
calendar months (`1mo`) and years (`1y`).

##### Function type signature

```js
(
    <-tables: stream[{A with _time: time, _stop: time, _start: time}],
    ?createEmpty: bool,
    ?every: duration,
    ?location: {zone: string, offset: duration},
    ?offset: duration,
    ?period: duration,
) => stream[{A with _time: time, _stop: time, _start: time}]
```

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

## Parameters

### every

Duration of time between windows. Default is the `0s`.

### period

Duration of the window. Default is `0s`.

Period is the length of each interval.
It can be negative, indicating the start and stop boundaries are reversed.

### offset

Duration to shift the window boundaries by. Default is 0s.

`offset` can be negative, indicating that the offset goes backwards in time.

### location

Location used to determine timezone. Default is the `location` option.

### createEmpty

Create empty tables for empty windows. Default is `false`.

### tables

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

## Examples

* [Window data into thirty second intervals](#window-data-into-thirty-second-intervals)
* [Window by calendar month](#window-by-calendar-month)

### Window data into thirty second intervals

```js
import "experimental"

data
    |> experimental.window(every: 30s)
```

[](#view-example-input-and-output)

View example input and output

#### Input data

|     \*\_start      |      \*\_stop      |       \_time       |\_value|\*tag|
|--------------------|--------------------|--------------------|-------|-----|
|2021-01-01T00:00:00Z|2021-01-01T00:01:00Z|2021-01-01T00:00:00Z|  \-2  | t1  |
|2021-01-01T00:00:00Z|2021-01-01T00:01:00Z|2021-01-01T00:00:10Z|  10   | t1  |
|2021-01-01T00:00:00Z|2021-01-01T00:01:00Z|2021-01-01T00:00:20Z|   7   | t1  |
|2021-01-01T00:00:00Z|2021-01-01T00:01:00Z|2021-01-01T00:00:30Z|  17   | t1  |
|2021-01-01T00:00:00Z|2021-01-01T00:01:00Z|2021-01-01T00:00:40Z|  15   | t1  |
|2021-01-01T00:00:00Z|2021-01-01T00:01:00Z|2021-01-01T00:00:50Z|   4   | t1  |

|     \*\_start      |      \*\_stop      |       \_time       |\_value|\*tag|
|--------------------|--------------------|--------------------|-------|-----|
|2021-01-01T00:00:00Z|2021-01-01T00:01:00Z|2021-01-01T00:00:00Z|  19   | t2  |
|2021-01-01T00:00:00Z|2021-01-01T00:01:00Z|2021-01-01T00:00:10Z|   4   | t2  |
|2021-01-01T00:00:00Z|2021-01-01T00:01:00Z|2021-01-01T00:00:20Z|  \-3  | t2  |
|2021-01-01T00:00:00Z|2021-01-01T00:01:00Z|2021-01-01T00:00:30Z|  19   | t2  |
|2021-01-01T00:00:00Z|2021-01-01T00:01:00Z|2021-01-01T00:00:40Z|  13   | t2  |
|2021-01-01T00:00:00Z|2021-01-01T00:01:00Z|2021-01-01T00:00:50Z|   1   | t2  |

#### Output data

|     \*\_start      |      \*\_stop      |       \_time       |\_value|\*tag|
|--------------------|--------------------|--------------------|-------|-----|
|2021-01-01T00:00:00Z|2021-01-01T00:00:30Z|2021-01-01T00:00:00Z|  \-2  | t1  |
|2021-01-01T00:00:00Z|2021-01-01T00:00:30Z|2021-01-01T00:00:10Z|  10   | t1  |
|2021-01-01T00:00:00Z|2021-01-01T00:00:30Z|2021-01-01T00:00:20Z|   7   | t1  |

|     \*\_start      |      \*\_stop      |       \_time       |\_value|\*tag|
|--------------------|--------------------|--------------------|-------|-----|
|2021-01-01T00:00:00Z|2021-01-01T00:00:30Z|2021-01-01T00:00:00Z|  19   | t2  |
|2021-01-01T00:00:00Z|2021-01-01T00:00:30Z|2021-01-01T00:00:10Z|   4   | t2  |
|2021-01-01T00:00:00Z|2021-01-01T00:00:30Z|2021-01-01T00:00:20Z|  \-3  | t2  |

|     \*\_start      |      \*\_stop      |       \_time       |\_value|\*tag|
|--------------------|--------------------|--------------------|-------|-----|
|2021-01-01T00:00:30Z|2021-01-01T00:01:00Z|2021-01-01T00:00:30Z|  17   | t1  |
|2021-01-01T00:00:30Z|2021-01-01T00:01:00Z|2021-01-01T00:00:40Z|  15   | t1  |
|2021-01-01T00:00:30Z|2021-01-01T00:01:00Z|2021-01-01T00:00:50Z|   4   | t1  |

|     \*\_start      |      \*\_stop      |       \_time       |\_value|\*tag|
|--------------------|--------------------|--------------------|-------|-----|
|2021-01-01T00:00:30Z|2021-01-01T00:01:00Z|2021-01-01T00:00:30Z|  19   | t2  |
|2021-01-01T00:00:30Z|2021-01-01T00:01:00Z|2021-01-01T00:00:40Z|  13   | t2  |
|2021-01-01T00:00:30Z|2021-01-01T00:01:00Z|2021-01-01T00:00:50Z|   1   | t2  |

### Window by calendar month

```js
import "experimental"

data
    |> experimental.window(every: 1mo)
```

[](#view-example-input-and-output)

View example input and output

#### Input data

|     \*\_start      |      \*\_stop      |       \_time       |\_value|
|--------------------|--------------------|--------------------|-------|
|2021-01-01T00:00:00Z|2021-03-01T00:00:00Z|2021-01-01T00:00:00Z| 32.1  |
|2021-01-01T00:00:00Z|2021-03-01T00:00:00Z|2021-01-02T00:00:00Z| 32.9  |
|2021-01-01T00:00:00Z|2021-03-01T00:00:00Z|2021-01-03T00:00:00Z| 33.2  |
|2021-01-01T00:00:00Z|2021-03-01T00:00:00Z|2021-02-01T00:00:00Z| 38.3  |
|2021-01-01T00:00:00Z|2021-03-01T00:00:00Z|2021-02-02T00:00:00Z| 38.4  |
|2021-01-01T00:00:00Z|2021-03-01T00:00:00Z|2021-02-03T00:00:00Z| 37.8  |

#### Output data

|     \*\_start      |      \*\_stop      |       \_time       |\_value|
|--------------------|--------------------|--------------------|-------|
|2021-01-01T00:00:00Z|2021-02-01T00:00:00Z|2021-01-01T00:00:00Z| 32.1  |
|2021-01-01T00:00:00Z|2021-02-01T00:00:00Z|2021-01-02T00:00:00Z| 32.9  |
|2021-01-01T00:00:00Z|2021-02-01T00:00:00Z|2021-01-03T00:00:00Z| 33.2  |

|     \*\_start      |      \*\_stop      |       \_time       |\_value|
|--------------------|--------------------|--------------------|-------|
|2021-02-01T00:00:00Z|2021-03-01T00:00:00Z|2021-02-01T00:00:00Z| 38.3  |
|2021-02-01T00:00:00Z|2021-03-01T00:00:00Z|2021-02-02T00:00:00Z| 38.4  |
|2021-02-01T00:00:00Z|2021-03-01T00:00:00Z|2021-02-03T00:00:00Z| 37.8  |

#### Related

* [Window and aggregate data with Flux](/influxdb/v2/query-data/flux/window-aggregate/)
* [window() function](/flux/v0/stdlib/universe/window/)
* [aggregateWindow() function](/flux/v0/stdlib/universe/aggregatewindow/)
* [InfluxQL – GROUP BY time()](/influxdb/v1/query_language/explore-data/#the-group-by-clause)

[transformations](/flux/v0/tags/transformations/)[date/time](/flux/v0/tags/date/time/)
| *_start | *_stop | _time | _value | *tag |
| --- | --- | --- | --- | --- |
| *_start | *_stop | _time | _value | *tag |
| 2021-01-01T00:00:00Z | 2021-01-01T00:01:00Z | 2021-01-01T00:00:00Z | -2 | t1 |
| 2021-01-01T00:00:00Z | 2021-01-01T00:01:00Z | 2021-01-01T00:00:10Z | 10 | t1 |
| 2021-01-01T00:00:00Z | 2021-01-01T00:01:00Z | 2021-01-01T00:00:20Z | 7 | t1 |
| 2021-01-01T00:00:00Z | 2021-01-01T00:01:00Z | 2021-01-01T00:00:30Z | 17 | t1 |
| 2021-01-01T00:00:00Z | 2021-01-01T00:01:00Z | 2021-01-01T00:00:40Z | 15 | t1 |
| 2021-01-01T00:00:00Z | 2021-01-01T00:01:00Z | 2021-01-01T00:00:50Z | 4 | t1 |

| *_start | *_stop | _time | _value | *tag |
| --- | --- | --- | --- | --- |
| *_start | *_stop | _time | _value | *tag |
| 2021-01-01T00:00:00Z | 2021-01-01T00:01:00Z | 2021-01-01T00:00:00Z | 19 | t2 |
| 2021-01-01T00:00:00Z | 2021-01-01T00:01:00Z | 2021-01-01T00:00:10Z | 4 | t2 |
| 2021-01-01T00:00:00Z | 2021-01-01T00:01:00Z | 2021-01-01T00:00:20Z | -3 | t2 |
| 2021-01-01T00:00:00Z | 2021-01-01T00:01:00Z | 2021-01-01T00:00:30Z | 19 | t2 |
| 2021-01-01T00:00:00Z | 2021-01-01T00:01:00Z | 2021-01-01T00:00:40Z | 13 | t2 |
| 2021-01-01T00:00:00Z | 2021-01-01T00:01:00Z | 2021-01-01T00:00:50Z | 1 | t2 |

| *_start | *_stop | _time | _value | *tag |
| --- | --- | --- | --- | --- |
| *_start | *_stop | _time | _value | *tag |
| 2021-01-01T00:00:00Z | 2021-01-01T00:00:30Z | 2021-01-01T00:00:00Z | -2 | t1 |
| 2021-01-01T00:00:00Z | 2021-01-01T00:00:30Z | 2021-01-01T00:00:10Z | 10 | t1 |
| 2021-01-01T00:00:00Z | 2021-01-01T00:00:30Z | 2021-01-01T00:00:20Z | 7 | t1 |

| *_start | *_stop | _time | _value | *tag |
| --- | --- | --- | --- | --- |
| *_start | *_stop | _time | _value | *tag |
| 2021-01-01T00:00:00Z | 2021-01-01T00:00:30Z | 2021-01-01T00:00:00Z | 19 | t2 |
| 2021-01-01T00:00:00Z | 2021-01-01T00:00:30Z | 2021-01-01T00:00:10Z | 4 | t2 |
| 2021-01-01T00:00:00Z | 2021-01-01T00:00:30Z | 2021-01-01T00:00:20Z | -3 | t2 |

| *_start | *_stop | _time | _value | *tag |
| --- | --- | --- | --- | --- |
| *_start | *_stop | _time | _value | *tag |
| 2021-01-01T00:00:30Z | 2021-01-01T00:01:00Z | 2021-01-01T00:00:30Z | 17 | t1 |
| 2021-01-01T00:00:30Z | 2021-01-01T00:01:00Z | 2021-01-01T00:00:40Z | 15 | t1 |
| 2021-01-01T00:00:30Z | 2021-01-01T00:01:00Z | 2021-01-01T00:00:50Z | 4 | t1 |

| *_start | *_stop | _time | _value | *tag |
| --- | --- | --- | --- | --- |
| *_start | *_stop | _time | _value | *tag |
| 2021-01-01T00:00:30Z | 2021-01-01T00:01:00Z | 2021-01-01T00:00:30Z | 19 | t2 |
| 2021-01-01T00:00:30Z | 2021-01-01T00:01:00Z | 2021-01-01T00:00:40Z | 13 | t2 |
| 2021-01-01T00:00:30Z | 2021-01-01T00:01:00Z | 2021-01-01T00:00:50Z | 1 | t2 |

| *_start | *_stop | _time | _value |
| --- | --- | --- | --- |
| *_start | *_stop | _time | _value |
| 2021-01-01T00:00:00Z | 2021-03-01T00:00:00Z | 2021-01-01T00:00:00Z | 32.1 |
| 2021-01-01T00:00:00Z | 2021-03-01T00:00:00Z | 2021-01-02T00:00:00Z | 32.9 |
| 2021-01-01T00:00:00Z | 2021-03-01T00:00:00Z | 2021-01-03T00:00:00Z | 33.2 |
| 2021-01-01T00:00:00Z | 2021-03-01T00:00:00Z | 2021-02-01T00:00:00Z | 38.3 |
| 2021-01-01T00:00:00Z | 2021-03-01T00:00:00Z | 2021-02-02T00:00:00Z | 38.4 |
| 2021-01-01T00:00:00Z | 2021-03-01T00:00:00Z | 2021-02-03T00:00:00Z | 37.8 |

| *_start | *_stop | _time | _value |
| --- | --- | --- | --- |
| *_start | *_stop | _time | _value |
| 2021-01-01T00:00:00Z | 2021-02-01T00:00:00Z | 2021-01-01T00:00:00Z | 32.1 |
| 2021-01-01T00:00:00Z | 2021-02-01T00:00:00Z | 2021-01-02T00:00:00Z | 32.9 |
| 2021-01-01T00:00:00Z | 2021-02-01T00:00:00Z | 2021-01-03T00:00:00Z | 33.2 |

| *_start | *_stop | _time | _value |
| --- | --- | --- | --- |
| *_start | *_stop | _time | _value |
| 2021-02-01T00:00:00Z | 2021-03-01T00:00:00Z | 2021-02-01T00:00:00Z | 38.3 |
| 2021-02-01T00:00:00Z | 2021-03-01T00:00:00Z | 2021-02-02T00:00:00Z | 38.4 |
| 2021-02-01T00:00:00Z | 2021-03-01T00:00:00Z | 2021-02-03T00:00:00Z | 37.8 |
