Skip to content

rollup()

Combine multiple state aggregates

Since 1.15.0

Combine multiple state aggregates into a single state aggregate. For example, you can use rollup to combine state aggregates from 15-minute buckets into daily buckets.

Combine multiple state aggregates and calculate the duration spent in the START state.

WITH buckets AS (SELECT
time_bucket('1 minute', ts) as dt,
state_agg(ts, state) AS sa
FROM states_test
GROUP BY time_bucket('1 minute', ts))
SELECT duration_in(
'START',
rollup(buckets.sa)
)
FROM buckets;

The syntax is:

rollup(
agg StateAgg
) RETURNS StateAgg
NameTypeDefaultRequiredDescription
aggStateAgg-State aggregates created using state_agg
ColumnTypeDescription
aggStateAggA new state aggregate that combines the input state aggregates