Hi all, I’d like to share a new PostgreSQL extension called pg_running_stats.
It implements mergeable, numerically stable running statistics using the Welford and Chan algorithms. Unlike the built-in aggregates such as avg(), variance(), and stddev(), which require scanning the entire dataset, pg_running_stats maintains a compact internal state that can be updated or merged incrementally. This makes it well-suited for: 1. streaming or real-time analytics where data arrives continuously, 2. incremental computation over large tables, 3. parallel or distributed queries that need to merge partial aggregates efficiently. The extension computes: mean, variance, standard deviation, skewness, kurtosis, and min/max all in a single pass. It’s written entirely in C, depends only on PostgreSQL headers, and builds cleanly on macOS (Homebrew) and Linux using PGXS. Source and documentation: https://github.com/chanukyasds/pg_running_stats Any feedback, testing, or suggestions for improvement would be very welcome. Thanks, Chanukya
