Combine multiple one-dimensional statistical aggregates to calculate rolling window aggregates
Since 1.3.0Combine multiple intermediate statistical aggregate (StatsSummary1D) objects into a single StatsSummary1D object. It
is optimized for use in a window function context for computing tumbling window statistical aggregates.
This is especially useful for computing tumbling window aggregates from a continuous aggregate. It can be orders of
magnitude faster because it uses inverse transition and combine functions, with the possibility that bigger floating
point errors can occur in unusual scenarios.For re-aggregation in a non-window function context, such as combining hourly buckets into daily buckets, see
rollup().
Copy
Ask AI
rolling( ss StatsSummary1D) RETURNS StatsSummary1D
Combine hourly continuous aggregates to create a tumbling window daily aggregate. Calculate the average and standard
deviation using the appropriate accessors:
Copy
Ask AI
CREATE MATERIALIZED VIEW foo_hourlyWITH (timescaledb.continuous)AS SELECT time_bucket('1h'::interval, ts) AS bucket, stats_agg(value) as statsFROM fooGROUP BY 1;SELECT bucket, average(rolling(stats) OVER (ORDER BY bucket RANGE '1 day' PRECEDING)), stddev(rolling(stats) OVER (ORDER BY bucket RANGE '1 day' PRECEDING)),FROM foo_hourly;