rollup(CounterSummary)

rollup(
    cs CounterSummary
) RETURNS CounterSummary

An aggregate to compute a combined CounterSummary from a series of non-overlapping CounterSummaries. Non-disjointed CounterSummaries cause errors.

For more information about counter aggregation functions, see the hyperfunctions documentation.

Required arguments

NameTypeDescription
csCounterSummaryThe input CounterSummary from a previous counter_agg (point form) call, often from a continuous aggregate

Returns

ColumnTypeDescription
counter_aggCounterSummaryA CounterSummary object that can be passed to accessor functions or other objects in the counter aggregate API

Sample usage

WITH t as (
    SELECT
        date_trunc('day', ts) as dt,
        counter_agg(ts, val) AS counter_summary -- get a time weight summary
    FROM foo
    WHERE id = 'bar'
    GROUP BY date_trunc('day')
), q as (
    SELECT rollup(counter_summary) AS full_cs -- do a second level of aggregation to get the full CounterSummary
    FROM t
)
SELECT
    dt,
    delta(counter_summary),  -- extract the delta from the  CounterSummary
    delta(counter_summary) / (SELECT delta(full_cs) FROM q LIMIT 1)  as normalized -- get the fraction of the delta that happened each day compared to the full change of the counter
FROM t;

Found an issue on this page?

Report an issue!

Related Content