Skip to main content
Early access 1.13.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.
rollup(
    agg StateAgg
) RETURNS StateAgg

Arguments

NameTypeDefaultRequiredDescription
aggStateAgg-State aggregates created using compact_state_agg

Returns

ColumnTypeDescription
aggStateAggA new state aggregate that combines the input state aggregates

Samples

Combine multiple state aggregates and calculate the duration spent in the START state.
WITH buckets AS (SELECT
    time_bucket('1 minute', ts) as dt,
    toolkit_experimental.compact_state_agg(ts, state) AS sa
FROM states_test
GROUP BY time_bucket('1 minute', ts))
SELECT toolkit_experimental.duration_in(
    'START',
    toolkit_experimental.rollup(buckets.sa)
)
FROM buckets;