> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Función de agregación que calcula cambios similares a PromQL en series temporales sobre la cuadrícula especificada.

# timeSeriesChangesToGrid

<div id="timeSeriesChangesToGrid">
  ## timeSeriesChangesToGrid
</div>

Introducido en: v25.6.0

Función de agregación que toma series temporales como pares de timestamps y valores, y calcula [cambios similares a PromQL](https://prometheus.io/docs/prometheus/latest/querying/functions/#changes) a partir de estos datos en una cuadrícula temporal regular definida por el timestamp de inicio, el timestamp de fin y el paso. Para cada punto de la cuadrícula, las muestras para calcular `changes` se toman dentro de la ventana de tiempo especificada.

<Note>
  Esta función es experimental; habilítela estableciendo `allow_experimental_ts_to_grid_aggregate_function=true`.
</Note>

**Sintaxis**

```sql theme={null}
timeSeriesChangesToGrid(start_timestamp, end_timestamp, grid_step, staleness)(timestamp, value)
```

**Parámetros**

* `start_timestamp` — Especifica el inicio de la cuadrícula. - `end_timestamp` — Especifica el final de la cuadrícula. - `grid_step` — Especifica el paso de la cuadrícula en segundos. - `staleness` — Especifica la "desactualización" máxima, en segundos, de las muestras consideradas.

**Argumentos**

* `timestamp` — Marca de tiempo de la muestra. Puede ser un valor individual o arrays. - `value` — Valor de la serie temporal correspondiente a la marca de tiempo. Puede ser un valor individual o arrays.

**Valor devuelto**

Valores de `changes` en la cuadrícula especificada como un `Array(Nullable(Float64))`. El array devuelto contiene un valor para cada punto de la cuadrícula temporal. El valor es NULL si no hay muestras dentro de la ventana para calcular el valor de `changes` para un punto concreto de la cuadrícula.

**Ejemplos**

**Calcular los valores de `changes` en la cuadrícula \[90, 105, 120, 135, 150, 165, 180, 195, 210, 225]**

```sql title=Query theme={null}
WITH
    -- NOTA: el intervalo entre 130 y 190 muestra cómo se rellenan los valores para ts = 180 según el parámetro window
    [110, 120, 130, 190, 200, 210, 220, 230]::Array(DateTime) AS timestamps,
    [1, 1, 3, 5, 5, 8, 12, 13]::Array(Float32) AS values, -- array de valores correspondientes a los timestamps anteriores
    90 AS start_ts,       -- inicio de la cuadrícula de timestamps
    90 + 135 AS end_ts,   -- fin de la cuadrícula de timestamps
    15 AS step_seconds,   -- paso de la cuadrícula de timestamps
    45 AS window_seconds  -- ventana de "staleness"
SELECT timeSeriesChangesToGrid(start_ts, end_ts, step_seconds, window_seconds)(timestamp, value)
FROM
(
    -- Esta subconsulta convierte arrays de timestamps y valores en filas de `timestamp`, `value`
    SELECT
        arrayJoin(arrayZip(timestamps, values)) AS ts_and_val,
        ts_and_val.1 AS timestamp,
        ts_and_val.2 AS value
);
```

```response title=Response theme={null}
┌─timeSeriesChangesToGrid(start_ts, end_ts, step_seconds, window_seconds)(timestamp, value)─┐
│ [NULL,NULL,0,1,1,1,NULL,0,1,2]                                                            │
└───────────────────────────────────────────────────────────────────────────────────────────┘
```

**La misma consulta con argumentos de tipo Array**

```sql title=Query theme={null}
WITH
    [110, 120, 130, 190, 200, 210, 220, 230]::Array(DateTime) AS timestamps,
    [1, 1, 3, 5, 5, 8, 12, 13]::Array(Float32) AS values,
    90 AS start_ts,
    90 + 135 AS end_ts,
    15 AS step_seconds,
    45 AS window_seconds
SELECT timeSeriesChangesToGrid(start_ts, end_ts, step_seconds, window_seconds)(timestamps, values);
```

```response title=Response theme={null}
┌─timeSeriesChangesToGrid(start_ts, end_ts, step_seconds, window_seconds)(timestamp, value)─┐
│ [NULL,NULL,0,1,1,1,NULL,0,1,2]                                                            │
└───────────────────────────────────────────────────────────────────────────────────────────┘
```
